У меня есть json array1 как:
[
{ id:0, name:"adam", uName: "aSilver", uId: "123", table: "table1"},
{ id:1, name:"john", uName: "jBerlin", uId: "456", table: "table1"}
]
У меня есть другой json array2 как:
[
{ id:0, name:"adam", uName: "aSilver, jBerlin", uId: "123, 456", createdBy:
"auto", createdOn: "09/10/2018", desc: "none", table: "table1"},
{ id:1, name:"john", uName: "aSilver, jBerlin", uId: "123, 456", createdBy:
"auto", createdOn: "09/10/2018", desc: "none1", table: "table1"},
{ id:0, name:"steve" uName: "aSilver, jBerlin, pParis", uId: "123, 456,
789", createdBy: "auto", createdOn: "09/10/2018", desc: "none2", table:
"table2"},
{ id:0, name:"nash", uName: "aSilver, jBerlin, pParis", uId: "123, 456,
789", createdBy: "auto", createdOn: "09/10/2018", desc: "none3", table:
"table2"},
{ id:0, name:"sand", uName: "aSilver", uId: "123", createdBy: "auto",
createdOn: "09/10/2018", desc: "none4", table: "table3"}
]
Я должен проверить, существует ли комбинация uname + uid в array1 вarray2
Итак, как показано ниже:
Сначала из array2 мне нужно получить только уникальные значения.Уникальные значения основаны на ключе «таблица».В результате ниже:
[
{ id:0, name:"adam", uName: "aSilver, jBerlin", uId: "123, 456", createdBy:
"auto", createdOn: "09/10/2018", desc: "none", table: "table1"},
{ id:0, name:"steve" uName: "aSilver, jBerlin, pParis", uId: "123, 456,
789", createdBy: "auto", createdOn: "09/10/2018", desc: "none2", table:
"table2"},
{ id:0, name:"sand", uName: "aSilver", uId: "123", createdBy: "auto",
createdOn: "09/10/2018", desc: "none4", table: "table3"}
]
Теперь я могу перебрать вышеуказанный массив, создав новый массив json3 как:
[
{ comparer: "aSilver_123, jBerlin_456", table: "table1" }
{ comparer: "aSilver_456, jBerlin_456, pParis_789", table: "table 2" }
{ comparer: "aSilver_123", table: "table 3" }
]
Теперь мне нужно сравнить только ключ сравнения array1 & array3
Так как массив1 имеет «aSilver_123, jBerlin_456», который аналогичен первому элементу массива3.Я бы сейчас выдавал ошибку, что «table1» имеет повторяющиеся значения.
На данный момент я нашел ниже метод, который проверяет уникальность, но я должен найти уникальность в массиве объектов, чтобы это не сработало.
Array.prototype.unique = function () {
var r = new Array();
o: for (var i = 0, n = this.length; i < n; i++) {
for (var x = 0, y = r.length; x < y; x++) {
if (r[x] == this[i]) {
return false;
}
}
r[r.length] = this[i];
}
return true;
}
Извините, я знаю, что это немного необычное сравнение, которое я ищу.
Хотелось узнать, какой эффективный способ подойти к этому?
Спасибо
Вот мой jsfiddle
:
http://jsfiddle.net/50pxjkda/7