ホームページ  >  記事  >  ウェブフロントエンド  >  JS での配列の反復メソッド: filter、reduce、every、some

JS での配列の反復メソッド: filter、reduce、every、some

Guanhui
Guanhui転載
2020-05-09 09:14:192560ブラウズ

JS での配列の反復メソッド forEach、map、filter、reduce、every、some

JS 配列を処理する日常的なプロセスでは、通常、for ループを使用します。 for ループ以外で一般的に使用される配列反復メソッドをいくつかまとめたものを以下に示します。

##map (マッピング)

は forEach に似ていますが、map には戻り値があり、元の配列を変更せずに新しい配列を生成します

let a = [1,2,3];
a.forEach(function(value,i){
    console.log("第" + (i + 1) + "项 :" +  value)
})
// 第1项 :1
// 第2项 :2
// 第3项 :3

map との比較forEach:

let a = [1,2,3];
a.map(function(value,i){
    return value * 2
})
// 第1项 :2
// 第2项 :4
// 第3项 :6

考えられる落とし穴:map によって処理されるデータ間にはさらにカンマ区切り文字があります理由:マップの走査後も配列であり、配列要素はカンマで区切られています。 DOM に挿入すると、toString のみが呼び出されます。配列要素間のカンマ区切り文字も取り込まれます。マップを走査した後、要素を文字列に直接連結すると、この問題は解決されます。

対処方法 : マップ続いて .join('')

reduce (cumulative)

reduce() メソッドはアキュムレータとして関数を受け取り、配列内の各値を (左から)右へ)減少が始まり、最終的に単一の値に計算されます。

reduce() は、関数を構成するための高階関数として使用できます。

注:reduce() は空の配列に対してコールバック関数を実行しません。

前後の項目を計算

// 没有返回值的forEach:
let a = [1, 2, 3];
a = a.forEach(function (value, i) {
    return value * 2 // undefine
})
// 有返回值的map:
let b = [1, 2, 3];
b = b.map(function (value, i) {
    return value * 2 // [2,4,6]
})

filter (フィルター)

条件を満たさない値を除外し、新しい配列を返します
let a = [1, 2, 3];
a = a.reduce(function (prev, next) {
    return prev + next // 1+2+3 = 6
})

すべて (すべて)

各要素が条件を満たしているかどうかを判断し、満たしている場合は true を返し、そうでない場合は false

let a = [1, 2, 3];
a = a.filter(function (value, i) {
    return value > 2 
})
console.log(a) // 3

some (任意)

各要素が条件を満たしているかどうかを判断し、満たしている場合は true を返し、そうでない場合は falseを返します

let a = [1, 2, 3];
a = a.every(function (value, i) {
    return value > 2 
})
console.log(a) // false

推奨チュートリアル:「

JS チュートリアル」

以上がJS での配列の反復メソッド: filter、reduce、every、someの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はzhihu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。