请问JavaScript根据item中的key值来提取数组怎么做?

Samoy
  • 124

假设有如下数组:

var array = [
    {id:1,color:"red"},
    {id:2,color:"blue"},
    {id:3,color:"white"},
    {id:4,color:"red"},
    {id:5,color:"blue"},
    {id:6,color:"gray"}
];

现在我想提取出来color:"red"的元素组成一个新的数组,即
var arr = [{id:1,color:"red"},{id:4,color:"red"}],
请问应该怎么做?
新手,求解答~

回复
阅读 3.8k
3 个回答
scort
  • 8.4k
✓ 已被采纳
var resultArray = array.filter(function(item){
    return item && item.color == 'red';
})
var array = [
    {id:1,color:"red"},
    {id:2,color:"blue"},
    {id:3,color:"white"},
    {id:4,color:"red"},
    {id:5,color:"blue"},
    {id:6,color:"gray"}
];

var newArray = [];

array.forEach(function(el) {
    if(el.color == 'red') {
        newArray.push(el);
    }
})

循环找到 color=='red' 的一项,添加到空数组arr中啊

var arr=[];
for(var i=0,len=array.length;i<len;i++){
  var item=array[i];
  if(item.color=='red'){
    arr.push(item);
  }
}
console.log(arr);
宣传栏