Буду очень признателен в вашей помощи!
У меня имеется два
json объекта и работа происходит с ними в
jquery. Первый
json->arr1 я получаю при нажатии кнопки в нём может быть различное количество объектов 10,100, 200.... вывожу их на карту
Если пользователь производит действия то срабатывает ajax-запрос который получает
json->arr2 и в нём получаю различное число объектов 7,35, 178....
1) Хочу получить разность между двумя json объектами то есть сравнивая
arr1 и arr2 чтобы получил объект
{Lattitude: '52,4043000', Location: 'a2', Longitude: '55,7181815', здесь у меня ещё какие-то параметры}
т.к при сравнении его нет в
arr2
2) После выполнения 1го действия хочу вернуть эти объекты и уже добавлю на карту
3) Хотелось бы хранить все вновь добавленные точки в одном объекте, то есть при нажатии на кнопку при первом разе получили
arr1- 45 объектов,вывели их на карту, затем происходит ajax запрос при перемещении карты, получаю с бд ещё допустим
arr2 - 70 объектов, сравнивая
arr1 и arr2 получаю 25 уникальных объектов которых ещё нет на карте, отображаю и после чего хочу 25 занести в arr1 получится 70 объектов, дальше уже будет цикличное сравнение 70 объектов в arr1 и подгрузил
arr2 150 опять сравниваем их и т.д -
Написал такую штуку по документации получение уникальных для своего 3) случая -
var uniqueAll = $.unique($.merge(arr1, arr2));
Пример данных:
arr1 = [
{Lattitude: '52,4043000', Location: 'a2', Longitude: '55,7181815', здесь у меня ещё какие-то параметры},
{Lattitude: '52,3882320', Location: 'b2', Longitude: '55,7225500', здесь у меня ещё какие-то параметры},
{Lattitude: '52,4041184', Location: 'c2', Longitude: '55,7172296', здесь у меня ещё какие-то параметры},
{Lattitude: '52,3996194', Location: 'd2', Longitude: '55,7200249', здесь у меня ещё какие-то параметры},
];
arr2 = [
{Lattitude: '52,3882320', Location: 'b2', Longitude: '55,7225500', здесь у меня ещё какие-то параметры},
{Lattitude: '52,4041184', Location: 'c2', Longitude: '55,7172296', здесь у меня ещё какие-то параметры},
{Lattitude: '52,3996194', Location: 'd2', Longitude: '55,7200249', здесь у меня ещё какие-то параметры}
];
Код который имеется для сравнения arr1 и arr2 не срабатывает сравнение.
function objDiff(arr1, arr2) {
var resultArray = [];
for (var i = 0; i < arr1.length; i++) {
var found = false;
for (var j = 0; arr2.length; j++) {
//здесь вываливается ошибка arr2[j].Lattitude Undefined, но в json Объектах arr1,arr2 имеется всё нигде null-нет в Lattitude и Longitude
if (arr1[i].Lattitude== arr2[j].Lattitude && arr1[i].Longitude== arr2[j].Longitude) {
found = true;
break;
}
}
if (found == false) {
resultArray.push(arr1[i]);
}
}
return resultArray;
}