如何将2个数组与当前结果进行比较:
只有来自a
的值不是b
仅b
中的值不是a
var a = [15404300,1567727156,3164959543,92767925,309935495,2759310935,989025462,3109960889,2232537998,67833886,23514543,86720742,837670914,338878286,2598297517,32190488,3292414118,558573564,2813085991,118447616,2380667550];
var b = [3292414118,2598297517,123];
当前代码
for (var i = 0; i < a.length; i++) {
for (var j = 0; j < b.length; j++) {
if (a[i] == b[j]) {
}
if(b[j] !== a[i]){
}
}
}
JSON对象的解决方案
var a = [{ data: 15404300, id: 0 },{ data: 1567727156, id: 0 },{ data: 3164959543, id: 0 },{ data: 92767925, id: 0 },{ data: 3181200014, id: 0 },{ data: 3292414118, id: 1 },{ data: 2598297517, id: 2 }];
var b = [{ data: 3292414118, id: 1 }, { data: 2598297517, id: 2 }, { data: 123, id: 3 }];
a.forEach(function(key) {
var keyData = key.data;
if (-1 === b.map(function(d) { return d['data']; }).indexOf(keyData)) {
res.push(key);
}
}, this);
答案 0 :(得分:1)
//a-b:
var res = []; // the resulting array
a.forEach(function(key) {
if (-1 === b.indexOf(key)) {
res.push(key);
}
}, this);
对于b-a,只需在示例中交换a和b。
答案 1 :(得分:1)
看看这个。
var resA = [];
a.forEach(function(v,i){ if( b.indexOf(v) < 0) resA.push(v)});
var resB = [];
b.forEach(function(v,i){ if( a.indexOf(v) < 0) resB.push(v)});
或使用过滤器以更干净的方式
var resA = a.filter(function(v){ if(b.indexOf(v) < 0) return v ; });
var resB = b.filter(function(v){ if(a.indexOf(v) < 0) return v ; });