JavaScript 配列で条件にマッチする要素のみ検索して抽出する
JavaScript
の配列で、特定の条件にマッチする要素のみを検索して抽出するにはfilter
を使います。
var arr = [1, 2, 3, 4, 5];
var isEven = function (element) {
// 偶数の場合はtrue、奇数の場合はfalse
return element % 2 === 0;
};
console.log(arr.filter(isEven)); // [2, 4]
filter(条件)
で指定し、要素を1つずつ条件
で抽出するかを判定していきます。条件
の結果がtrue
の場合の要素のみ抽出されます。
以下のように条件
のfunction
をそのまま引数として扱うこともできます。
var arr = [1, 2, 3, 4, 5];
console.log(arr.filter(function (element) {
return element % 2 === 0;
})); // [2, 4]
オブジェクトの配列の場合
オブジェクトの配列でも同じように行うことができます。
var arr = [
{
name: '一郎',
age: 25
},
{
name: '二郎',
age: 21
},
{
name: '三郎',
age: 18
}
];
console.log(arr.filter(function (element) {
return element.age >= 20;
})); // [ {name: "一郎", age: 25}, {name: "二郎", age: 21} ]
IE8以下の対応
IE8
以下はfilter
が使えないので、独自に実装することになります。
下記のリンクで紹介しているスクリプトを組み込めば同じようにfilter
を使用できるようになります。