我想比较内部具有不同整数id的两个对象数组,如下所示。
arrayOne = [{id: 45}, {id: 35}, {id: 43}];
arrayTwo = [{id: 42}, {id: 35}, {id: 43}]; // should return false on it because 42 is not in first array.
我想实现一个函数,如果这两个数组与上面的示例不同,则应返回false
,但如果这两个数组与下面的示例相同,则应返回true
,
arrayOne = [{id: 45}, {id: 35}, {id: 43}];
arrayTwo = [{id: 45}, {id: 35}, {id: 43}]; // should return true on it because both are identical.
arrayOne = [{id: 35}, {id: 43}, {id: 45}];
arrayTwo = [{id: 45}, {id: 35}, {id: 43}]; // should return true on it because all id's are inside.
实现这一目标的任何好的方法?
您可以使用every
,并在其中使用some
检查其他数组中是否至少存在一项:
arrayOne = [{id: 45}, {id: 35}, {id: 43}];
arrayTwo = [{id: 42}, {id: 35}, {id: 43}];
result1 = arrayOne.every(k=>arrayTwo.some(d=>d.id==k.id));
console.log(result1);
//Second case
arrayOne = [{id: 45}, {id: 35}, {id: 43}];
arrayTwo = [{id: 45}, {id: 35}, {id: 43}];
result2 = arrayOne.every(k=>arrayTwo.some(d=>d.id==k.id));
console.log(result2);
您可以比较字符串化数组:
var arrayOne = [{id: 45}, {id: 35}, {id: 43}];
var arrayTwo = [{id: 42}, {id: 35}, {id: 43}];
var isSame = JSON.stringify(arrayOne) == JSON.stringify(arrayTwo)?
true : false;
console.log(isSame);