some【有効判定 (一部要素有効)】
every【有効判定 (全要素有効)】
%TypedArray%.prototype.some【有効判定 (一部要素有効)】
メモ
概要
- 一部要素がコールバック関数で有効 (true) か判定
- コールバック関数で有効 (true) となった時点で処理中止
- 存在しない要素に対しては判定なし
- コールバック関数で配列の変更も可能
関連
- 全ての要素が有効(true)か判定:every【有効判定 (全要素有効)】
- 要素の抽出:filter【抽出生成】
- 要素の変換:map【配列変換生成】
外部リンク
- ECMA-262 (英語)
%TypedArray%.prototype.some ( callbackfn [ , thisArg ] ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
typedArray.some ( callbackfn [, thisArg ] )
判定結果
true:配列要素に対して、callbackfnが1つでも true 返却
false:その他
callbackfn有効判定用コールバック関数 (詳細は下記参照)
thisArgcallbackfn内でthis で参照されるオブジェクト
TypeError callbackfnが呼び出し不可
コールバック関数 引数名 (例) | 説明 |
---|---|
value | 要素値 |
index | 要素インデックス |
typedArray | 型指定配列ビュー |
戻り値型 | 説明 |
Boolean型 | true:有効な要素 false:無効な要素 |
例
// 0 以上で true を返却する関数
function func(value, index, typedArray) {
let result = false;
if (0 <= value) {
result = true;
}
console.log('func:', value, index, result);
return result;
}
// 要素値が this で指定した値より大きい場合、true を返却する関数
function funcThis(value, index, typedArray) {
let result = false;
if (this < value) {
result = true;
}
console.log('funcThis:', value, index, this, result);
return result;
}
const arrayA = [ 0, 10, 20, 30];
const arrayB = [ -100, -10, -20, -30];
const typedArrayA = new Int32Array(arrayA);
console.log(typedArrayA);
// 出力:Int32Array(4) [0, 10, 20, 30, (省略) ]
const typedArrayB = new Int32Array(arrayB);
console.log(typedArrayB);
// 出力:Int32Array(4) [-100, -10, -20, -30, (省略) ]
let result = typedArrayA.some(func);
// 出力:
// func: 0 0 true
console.log(result);
// 出力:true
result = typedArrayB.some(func);
// 出力:
// func: -100 0 false
// func: -10 1 false
// func: -20 2 false
// func: -30 3 false
console.log(result);
// 出力:false
result = typedArrayA.some(funcThis, 20);
// 出力:
// funcThis: 0 0 Number {20} false
// funcThis: 10 1 Number {20} false
// funcThis: 20 2 Number {20} false
// funcThis: 30 3 Number {20} true
console.log(result);
// 出力:true
result = typedArrayA.some(funcThis, 100);
// 出力:
// funcThis: 0 0 Number {100} false
// funcThis: 10 1 Number {100} false
// funcThis: 20 2 Number {100} false
// funcThis: 30 3 Number {100} false
console.log(result);
// 出力:false
// 例外
try {
console.log( typedArrayA.some(null) );
} catch(e) {
console.log(e); // 例外:TypeError: null is not a function
}
%TypedArray%.prototype.every【有効判定 (全要素有効)】
メモ
概要
- 全ての要素がコールバック関数で有効 (true) か判定
- コールバック関数で無効 (false) となった時点で処理中止
- 存在しない要素に対しては判定なし
- コールバック関数で配列の変更も可能
関連
- 一部要素が有効(true)か判定:some【有効判定 (一部要素有効)】
- 要素の抽出:filter【抽出生成】
- 要素の変換:map【配列変換生成】
外部リンク
- ECMA-262 (英語)
%TypedArray%.prototype.every ( callbackfn [ , thisArg ] ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
typedArray.every ( callbackfn [, thisArg ] )
判定結果
true:全ての配列要素に対して、callbackfn が true 返却
false:その他
callbackfn有効判定用コールバック関数 (詳細は下記参照)
thisArgcallbackfn内でthis で参照されるオブジェクト
TypeError callbackfnが呼び出し不可
コールバック関数 引数名 (例) | 説明 |
---|---|
value | 要素値 |
index | 要素インデックス |
typedArray | 型指定配列ビュー |
戻り値型 | 説明 |
Boolean型 | true:有効な要素 false:無効な要素 |
例
// 0 以上で true を返却する関数
function func(value, index, typedArray) {
let result = false;
if (0 <= value) {
result = true;
}
console.log('func:', value, index, result);
return result;
}
// 要素値が this で指定した値より大きい場合、true を返却する関数
function funcThis(value, index, typedArray) {
let result = false;
if (this < value) {
result = true;
}
console.log('funcThis:', value, index, this, result);
return result;
}
const arrayA = [ 0, 10, 20, 30];
const arrayB = [ 0, -10, 20, -30];
const typedArrayA = new Int32Array(arrayA);
console.log(typedArrayA);
// 出力:Int32Array(4) [0, 10, 20, 30, (省略) ]
const typedArrayB = new Int32Array(arrayB);
console.log(typedArrayB);
// 出力:Int32Array(4) [0, -10, 20, -30, (省略) ]
let result = typedArrayA.every(func);
// 出力:
// func: 0 0 true
// func: 10 1 true
// func: 20 2 true
// func: 30 3 true
console.log(result);
// 出力:true
result = typedArrayB.every(func);
// 出力:
// func: 0 0 true
// func: -10 1 false
console.log(result);
// 出力:false
result = typedArrayA.every(funcThis, 20);
// 出力:
// funcThis: 0 0 Number {20} false
console.log(result);
// 出力:false
result = typedArrayA.every(funcThis, -10);
// 出力:
// funcThis: 0 0 Number {-10} true
// funcThis: 10 1 Number {-10} true
// funcThis: 20 2 Number {-10} true
// funcThis: 30 3 Number {-10} true
console.log(result);
// 出力:true
// 例外
try {
console.log( typedArrayA.every(null) );
} catch(e) {
console.log(e); // 例外:TypeError: null is not a function
}