如何从具有其他简单数组中存在的值的数组中删除对象(jquery)

时间:2016-06-08 16:38:52

标签: javascript jquery arrays

我有以下两个数组:

SimpleArray = [2,3];  
ObjectArray = [{
    id: 1, 
    name: 'charles'
},{
    id: 2, 
    name: 'john'
},{
    id: 3, 
    name: 'allen'
},{
    id: 4, 
    name: 'jack'
}];  

我想删除ObjectArray中存在的ID等于SimpleArray中存在的值的对象。

1 个答案:

答案 0 :(得分:0)

如果要删除原始数组中的数据,请使用 Array#splice() 方法



SimpleArray = [2, 3];
ObjectArray = [{
  id: 1,
  name: 'charles'
}, {
  id: 2,
  name: 'john'
}, {
  id: 3,
  name: 'alen'
}, {
  id: 4,
  name: 'jack'
}];

for (var i = 0; i < ObjectArray.length; i++) {
  if (SimpleArray.indexOf(ObjectArray[i].id) > -1) {
    ObjectArray.splice(i, 1);
    i--;
  }
}

console.log(ObjectArray);
&#13;
&#13;
&#13;

如果您需要生成新的过滤数组,请使用 Array#filter() 方法

&#13;
&#13;
SimpleArray = [2, 3];
ObjectArray = [{
  id: 1,
  name: 'charles'
}, {
  id: 2,
  name: 'john'
}, {
  id: 3,
  name: 'alen'
}, {
  id: 4,
  name: 'jack'
}];

var res = ObjectArray.filter(function(v) {
  return SimpleArray.indexOf(v.id) > -1
})

console.log(res);
&#13;
&#13;
&#13;