この記事の内容は、js が配列に特定の要素が含まれているかどうかをどのように判断するかについてです。 (方法の概要) は、必要な友人が参考になれば幸いです。
配列に特定の要素が含まれているかどうかを判断するのは非常に一般的な要件です。今日は、それらを強い互換性から弱い互換性までまとめて説明します。 type は常に boolean です:
配列が arr でターゲット要素が target
(arr, target) => { for (var i = 0; i < arr.length; i++) { if (arr[i] === target) { return true; } } return false; }
互換性: es1
等しいアルゴリズム: ===
(arr, target) => { return arr.indexOf(target) >= 0; }
互換性: es5
等価アルゴリズム: ===
(arr, target) => { return arr.filter(el => el === target).length > 0; }
互換性: es5
等しいアルゴリズム: ===
(arr, target) => { return arr.some(el => el === target); }
互換性: es5
等しいアルゴリズム: ===
(arr, target) => { return arr.find(el => el === target) !== undefined; }
互換性: es2015
等しいアルゴリズム: ===
(arr, target) => { return arr.findIndex(el => el === target) >= 0; }
互換性: es2015
等しいアルゴリズム: == =
(arr, target) => { return arr.includes(target); }
互換性: es2016
等価アルゴリズム: SameValueZero
==ヒント:==
= = = と SameValueZero の違いは、NaN === Nan => false
と SameValueZero は 2 つの NaN が等しいと見なすことです。詳細についてはMDNを参照してください。上記の === の実装を SameValueZero の実装に変更したい場合は、次のように記述できます:
el === target || (Object.is(el, NaN) && Object.is(target, NaN))
現在、es6 と babel が非常に人気があるため、ほとんどの場合、インクルードを直接使用するだけです。
以上がjs は配列に特定の要素が含まれていることをどのように判断するのでしょうか? (方法の概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。