我希望得到第一个数组和第二个数组之间的区别。结果;
var arr1 = [{name: "Yesügey", lastName: "Yeşil", phone: "+90 333 9695395"},
{name: "Firdest", lastName: "Firdevis", phone: "+90 333 4234638"},
{name: "Pehlivan", lastName: "Pehlül", phone: "+90 333 9114821"},
{name: "Urbeyi", lastName: "Usberk", phone: "+90 333 1617245"},
{name: "Kâmile", lastName: "Kâşife", phone: "+90 333 6784334"},
{name: "Akdoruk", lastName: "Akdöl", phone: "+90 333 4687455"}]
和
var arr2 = [{name: "Yesügey", lastName: "Yeşil", phone: "+90 333 9695395"},
{name: "Firdest", lastName: "Firdevis", phone: "+90 333 4234638"},
{name: "Pehlivan", lastName: "Pehlül", phone: "+90 333 9114821"},
{name: "Urbeyi", lastName: "Usberk", phone: "+90 333 1617245"}]
ARR1-ARR2
结果:
var result = [{name: "Kâmile", lastName: "Kâşife", phone: "+90 333 6784334"},
{name: "Akdoruk", lastName: "Akdöl", phone: "+90 333 4687455"}]
我想得到它。
_。在Underscore中的差异没有成功。我该如何遵循方法?
答案 0 :(得分:1)
如果要查找两个对象之间的差异,可以尝试使用_.filter和_.findWhere函数:
var array1 = [{a: 1},{b: 2}];
var array2 = [{a: 1}];
_.filter(array1, function(obj){ return !_.findWhere(array2, obj); });
答案 1 :(得分:0)
不使用_。但
var arr1 = [{name: "Yesügey", lastName: "Yeşil", phone: "+90 333 9695395"},{name: "Firdest", lastName: "Firdevis", phone: "+90 333 4234638"},{name: "Pehlivan", lastName: "Pehlül", phone: "+90 333 9114821"},{name: "Urbeyi", lastName: "Usberk", phone: "+90 333 1617245"},{name: "Kâmile", lastName: "Kâşife", phone: "+90 333 6784334"},{name: "Akdoruk", lastName: "Akdöl", phone: "+90 333 4687455"}]
var arr2 = [{name: "Yesügey", lastName: "Yeşil", phone: "+90 333 9695395"},{name: "Firdest", lastName: "Firdevis", phone: "+90 333 4234638"},{name: "Pehlivan", lastName: "Pehlül", phone: "+90 333 9114821"},{name: "Urbeyi", lastName: "Usberk", phone: "+90 333 1617245"}]
function compare(otherArray){
return function(current){
return otherArray.filter(function(other){
return other.name == current.name && other.lastName ==
current.lastName && other.phone == current.phone
}).length == 0;
}
}
var onlyInFirst = arr1.filter(compare(arr2));
var onlyInSecond = arr2.filter(compare(arr1));
result = onlyInFirst.concat(onlyInSecond);
console.log(result);
这适用于您的特定场所。 如果您需要将其用于具有不同类别的其他数组,则需要更改"返回other.name == current.name"包含新数组对象的行。 示例
var arr1 = [{key1="value",key2="value"}]
var arr2 = [{key1="different value",key2 = "different value="}]
回程线会说。
return current.key1 == other.key1 && current.key2 = other.key2