ホームページ  >  記事  >  ウェブフロントエンド  >  js は配列に特定の要素が含まれていることをどのように判断するのでしょうか? (方法の概要)

js は配列に特定の要素が含まれていることをどのように判断するのでしょうか? (方法の概要)

不言
不言オリジナル
2018-09-18 15:07:182397ブラウズ

この記事の内容は、js が配列に特定の要素が含まれているかどうかをどのように判断するかについてです。 (方法の概要) は、必要な友人が参考になれば幸いです。

配列に特定の要素が含まれているかどうかを判断するのは非常に一般的な要件です。今日は、それらを強い互換性から弱い互換性までまとめて説明します。 type は常に boolean です:

配列が arr でターゲット要素が target

ループ トラバーサル:

(arr, target) => {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] === target) {
      return true;
    }
  }
  return false;
}

互換性: es1

等しいアルゴリズム: ===

indexOf:

(arr, target) => {
  return arr.indexOf(target) >= 0;
}

互換性: es5

等価アルゴリズム: ===

フィルター:

(arr, target) => {
  return arr.filter(el => el === target).length > 0;
}

互換性: es5

等しいアルゴリズム: ===

some:

(arr, target) => {
  return arr.some(el => el === target);
}

互換性: es5

等しいアルゴリズム: ===

find :

(arr, target) => {
  return arr.find(el => el === target) !== undefined;
}

互換性: es2015

等しいアルゴリズム: ===

findIndex:

(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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。