概要
Array.prototype.filter()
は、コールバック関数を引数にとり、配列の各要素にコールバックの条件を適用した結果を新たな配列として返す。
[新たな配列] = [元の配列].filter(callback);
コールバックは引数を1つ取りtrue/false
を返す関数で、引数には元の配列の各要素が順次あてられ、条件がtrue
の要素のみが残った配列が新たに生成される。
実行例
以下の例では、文字列を要素とする配列から文字列長が3文字以内の要素のみを取り出して新たな配列としている。元の配列は影響を受けない。
1 2 3 4 5 6 7 8 |
array = ['zero', 'one', 'two', 'three']; new_array = array.filter(v => v.length <= 3); console.log(new_array); console.log(array); // ["one", "two"] // ["zero", "one", "two", "three"] |
活用例~要素の削除
以下のように、配列の要素の内容を指定して削除することができる。同じ内容の要素が複数含まれる場合、すべて削除される。
1 2 3 4 5 |
array = [1, 2, 3, 4, 3, 2, 1]; console.log(array.filter(v => v !== 2)); // [1, 3, 4, 3, 1] |