2016-08-06 8 views

答えて

1

フィルタは、配列を反復処理してコールバック関数を実行します。コールバック関数は、値が返されるようにブール値に評価する必要があります。

var arr = [{code:'A', number: 1}, {code:'A', number: 2}, {code:'B', number: 3 }] 
arr.filter(function(x) { return x.code === 'A'}).length 
1

配列全体を反復処理し、countや対応する数値などの情報をオブジェクト構造体に格納します。

var arr = [{code:'A', number: 1}, {code:'A', number: 2}, {code:'B', number: 3 }]; 
 

 
var obj = {}; 
 
debugger; 
 
for (var i =0, len = arr.length; i < len; i += 1) { 
 
    ele = arr[i]; 
 
    code = ele.code 
 
    if (!obj[code]) { 
 
    obj[code] = { 
 
     count: 0, 
 
     number: [] 
 
    }; 
 
    } 
 
    obj[code].count += 1; 
 
    obj[code].number.push(ele.number); 
 
} 
 

 
function getCount(code) { 
 
    return obj[code].count; 
 
} 
 

 
console.log(getCount('A')); // 2 
 
console.log(getCount('B')); // 1 
 
console.log(obj);

関連する問題