如何获取另一个数组中不存在的数组的所有项

时间:2017-06-27 10:51:39

标签: javascript arrays

如何获取不存在另一个数组的所有数组项?

我有一个已选择值的数组:

var selectedList = [1,2];

另一个包含对象列表的数组,如

var objList = [{Value:1, Name:'KL'},{Value:2, Name:'XYZ'},{Value:3, Name:'ABC'}];

我希望结果是对ObjList数组的值字段进行过滤,并且只有那些在selectedList中不存在的记录。

2 个答案:

答案 0 :(得分:1)

你可以使用简单的过滤器来做到这一点

var selectedList = [1, 2];
var objList = [{
  Value: 1,
  Name: 'KL'
}, {
  Value: 2,
  Name: 'XYZ'
}, {
  Value: 3,
  Name: 'ABC'
}];

var data = objList.filter(x => selectedList.indexOf(x.Value) != -1)

console.log(data)

答案 1 :(得分:0)

您可以尝试:

var bigArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
var smallArray = ['b', 'c', 'g'];

var newArray = bigArray.filter( function(item) {
  return smallArray.indexOf(item) < 0;
});

或使用underscore.js使用.difference()