我有两个数组对象如下所示:
var arrayOne = [{"Name":"job","SubscriptionGUID":"8ead7edfa460"},{"Name":"TestJobSQL","SubscriptionGUID":"09e7dbff7779"}];
var arrayTwo = [{"UserSubscriptionID":13,"SubscriptionGUID":"8ead7edfa460","Name":"job"}];
var arrayDiff = [];我需要比较元素名称和删除匹配元素,只显示arrayDiff中不匹配的数组元素。
如上例所示,我的新arrayDiff应该是
var arrayDiff = [{"Name":"TestJobSQL"}]; or var arrayDiff = ['TestJobSQL'];如果arrayTwo是
var arrayTwo = [];那么arrayDiff应该返回
var arrayDiff = [{"Name":"TestJobSQL"},{"Name":"Job"}]; or var arrayDiff = ['TestJobSQL', 'Job'];发布于 2017-05-31 07:15:18
尝尝这个
var arrayOne = [{"Name":"job","SubscriptionGUID":"8ead7edfa460"},{"Name":"TestJobSQL","SubscriptionGUID":"09e7dbff7779"}];
var arrayTwo = [{"UserSubscriptionID":13,"SubscriptionGUID":"8ead7edfa460","Name":"job"}];
var arrayDiff = [];
arrayOne.forEach(function(item, index){
var found = false;
arrayTwo.forEach(function(item1, index1){
if(item.Name == item1.Name) {
found = true;
}
})
if(found == false) {
arrayDiff.push({ Name : item.Name});
}
})
console.log(arrayDiff);发布于 2017-05-31 07:14:13
一种简单的方法是使用lodash's和_.differenceBy方法。
它让我们根据您想要的属性创建两个不同的数组。
发布于 2017-05-31 07:17:30
var createDiffArray = function(attrName,arrayOne,arrayTwo){
var arrayDif = [];
for (let element of arrayOne){
if (arrayTwo.find( x => x[attrName] === element[attrName]) !== undefined){
arrayDif.push(element[attrName]);
}
}
return arrayDif;
}https://stackoverflow.com/questions/44277902
复制相似问题