ホームページ > 記事 > ウェブフロントエンド > jsイテレータメソッドについて
イテレータは、標準テンプレート ライブラリ コンテナ内の一部またはすべての要素を走査するために使用できるオブジェクトです。各イテレータ オブジェクトは、コンテナ内の特定のアドレスを表します。 js 配列の反復子メソッドには 2 種類あります。1 つは新しい配列を生成しないもの、もう 1 つは新しい配列を生成するものです。
最初のメソッド: 新しい配列を生成せず、代わりに配列内の各要素に対して何らかの操作を実行するか、値を返します。
1. forEach() メソッド。関数をパラメーターとして受け取り、配列内の各要素にその関数を使用します。
<script> function arr(num){console.log(num+1)}; var array = [1,2,3,4,5,6]; array.forEach(arr); </script>
2.every() と some() はどちらのメソッドも戻り値がブール型である関数を受け入れ、配列内の各要素に対してこの関数を使用します。関数がすべての要素に対して true を返す場合、every() メソッドは true を返します。 some() メソッドは、1 つの要素がこの関数を使用して true を返す限り、true を返します。
<script> var arr = [1,3,4,5,6,7,8]; function even(num){return num%2 ==0}; var sum = arr.every(even); var nums = arr.some(even); console.log(sum)//false; console.log(nums)//true;
</script>
3.reduce() メソッドは関数を受け取り、値を返します。このメソッドは累積値から開始し、累積値と配列内の後続の要素に対して、配列の最後の要素まで関数の呼び出しを続け、最後に累積値を返します。文字列配列要素を長い文字列に連結することもできます
function add(total,num){return total+-*/num}; var arr =[1,2,3,4]; var sum = arr.reduce(add);
js には、reduceRight() メソッドも用意されています。違いは、その順序が右から左へまったく逆であることです。 。
2 番目のメソッド 新しい配列を生成するイテレーター メソッド
新しい配列を生成できるイテレーター メソッドは 2 つあります:map() と filter()。 map() は、配列内の各要素に対して関数を使用する forEach() に少し似ています。この 2 つの違いは、map() が元の要素に関数を適用した結果である新しい配列を返すことです。
function add(num) { return num+=5; } var words =[1,2,3,4,5]; var sum =words.map(add); console.log(sum);//[6,7,8,9,10]
filter() は、戻り値がブール型である関数を渡す、every() と似ています。every() との違いは、関数が配列内のすべての要素に適用されるときの結果です。が true の場合、このメソッドは true を返しませんが、関数を適用した結果が true となる要素を含む新しい配列を返します。
function add(num) { return num%2 == 0; } var words =[1,2,3,4,5]; var sum =words.filter(add); console.log(sum);//[2,4];
<br/>
filter() を使用して文字列配列をフィルタリングすることもできます。例:
function add(str){if(str).indexOf("cie")>-1){return true;}return false;} var words =["recieve","deceit","deceive"] var miss = words.filter(add); console.log(miss)//["recieve"]
上記の内容は js イテレータ メソッドに関するもので、皆様のお役に立てれば幸いです。
関連する推奨事項:
PHPイテレータを使用してフィボナッチ数列関数を実装する方法の分析例
JavaScriptイテレータパターンの実装方法と使用例の詳細な説明
以上がjsイテレータメソッドについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。