isArray【配列判定】
every【有効判定 (全要素有効)】
some【有効判定 (一部要素有効)】

Array.isArray【配列判定】

メモ

概要

  • 配列か否かの判定

関連

外部リンク

構文

Array.isArray( arg ) 

判定結果
true:配列
false:その他
arg判定オブジェクト

var array = [1, 2, 3];
console.log(Array.isArray(array));  // 出力:true
console.log(Array.isArray(123));    // 出力:false
console.log(Array.isArray(null));   // 出力:false

Array.prototype.every【有効判定 (全要素有効)】

メモ

概要

  • 全ての要素コールバック関数有効 (true) か判定
    • コールバック関数で無効 (false) となった時点で処理中止
    • 存在しない要素に対しては判定なし
    • コールバック関数で配列の変更も可能

関連

外部リンク

構文

array.every( callbackfn[, thisArg] )

判定結果
true:全ての配列要素に対して、callbackfn が true返却
false:その他
callbackfn有効判定用コールバック関数 (詳細は下記参照)
thisArgcallbackfn内でthis で参照されるオブジェクト

TypeError 例外callbackfn 呼び出し不可
コールバック関数 引数名 (例)説明
value要素値
index要素インデックス
array配列 オブジェクト
戻り値型説明
Boolean型true:有効な要素
false:無効な要素

// true を返却する関数
function funcTrue1(value, index, array) {
  console.log(value, index, array, true);
  return true;
}
// true を返却する関数 (this を受け取り)
function funcTrue2(value, index, array) {
  console.log(value, index, array, this, true);
  return true;
}
// false を返却する関数
function funcFalse1(value, index, array) {
  console.log(value, index, array, false);
  return false;
}
// false を返却する関数 (this を受け取り)
function funcFalse2(value, index, array) {
  console.log(value, index, array, this, false);
  return false;
}

var array = [ , 10, 20, , 40]; // 1・4 番目の項目は省略 
console.log(array.every(funcTrue1));
// 出力:10 1 [1: 10, 2: 20, 4: 40] true
// 出力:20 2 [1: 10, 2: 20, 4: 40] true
// 出力:30 4 [1: 10, 2: 20, 4: 40] true
// 出力:true
console.log(array.every(funcTrue2, 123));
// 出力:10 1 [1: 10, 2: 20, 4: 40] Number { 123 } true
// 出力:20 2 [1: 10, 2: 20, 4: 40] Number { 123 } true
// 出力:30 4 [1: 10, 2: 20, 4: 40] Number { 123 } true
// 出力:true
console.log(array.every(funcFalse1));
// 出力:10 1 [1: 10, 2: 20, 4: 40] false
// 出力:false
console.log(array.every(funcFalse2, "abc"));
// 出力:10 1 [1: 10, 2: 20, 4: 40] String { "abc" } false
// 出力:false

console.log(array.every(null));  // TypeError 例外

Array.prototype.some【有効判定 (一部要素有効)】

メモ

概要

  • 一部要素コールバック関数有効 (true) か判定
    • コールバック関数で有効 (true) となった時点で処理中止
    • 存在しない要素に対しては判定なし
    • コールバック関数で配列の変更も可能

関連

外部リンク

構文

array.some( callbackfn[, thisArg] )

判定結果
true:配列要素に対して、callbackfnが1つでもtrue返却
false:その他
callbackfn有効判定用コールバック関数
thisArgcallbackfn内でthis で参照されるオブジェクト

TypeError 例外callbackfnが呼び出し不可
コールバック関数 引数名 (例)説明
value要素値
index要素インデックス
array配列 オブジェクト
戻り値型説明
Boolean型true:有効な要素
false:無効な要素

// 要素値が30の場合、true を返却する関数
function func(value, index, array) {
  var ret = false;
  if (value == 30) {
    ret = true;
  }
  console.log(value, index, array, ret);
  return ret;
}
// 要素値が this で指定した値の場合、true を返却する関数
function func2(value, index, array) {
  var ret = false;
  if (this == value) {
    ret = true;
  }
  console.log(value, index, array, this, ret);
  return ret;
}

var array = [ , 10, , 30, 40, 50]; // 1・3 番目の項目は省略 
console.log(array.some(func));
// 出力:10 1 [1: 10, 3: 30, 4: 40, 5: 50] false
// 出力:30 3 [1: 10, 3: 30, 4: 40, 5: 50] true
// 出力:true
console.log(array.some(func2, 40));
// 出力:10 1 [1: 10, 3: 30, 4: 40, 5: 50] Number { 40 } false
// 出力:30 3 [1: 10, 3: 30, 4: 40, 5: 50] Number { 40 } false
// 出力:40 4 [1: 10, 3: 30, 4: 40, 5: 50] Number { 40 } true
// 出力:true
console.log(array.some(func2, 100));
// 出力:10 1 [1: 10, 3: 30, 4: 40, 5: 50] Number { 100 } false
// 出力:30 3 [1: 10, 3: 30, 4: 40, 5: 50] Number { 100 } false
// 出力:40 4 [1: 10, 3: 30, 4: 40, 5: 50] Number { 100 } false
// 出力:50 5 [1: 10, 3: 30, 4: 40, 5: 50] Number { 100 } false
// 出力:false

console.log(array.some(null));  // TypeError 例外