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を使用できるようになります。