У меня есть два вложенных массива, и мне нужно получить разные значения в переменную / массив.
Например:
servicesCompare1 [{serviceId: 112, имя: services1}, {serviceId: 113, name: services2}]
servicesCompare2 [{serviceId: 113, name: services2}]
Мне нужно получить {serviceId: 112, name: services1} в переменной.
Я нашел много и много решений, но каждый, кого я пробовал, получал обе услуги. Не только тот, который мне нужен. Например, это: http://jsfiddle.net/WgykC/ (я сделал то же самое, но все равно получил значение servicesCompare1.)
Мой код:
self.services = ko.observableArray([]);
self.lastCheck = ko.observable();
var servicesCompare1 = [];
var servicesCompare2 = [];
$.getJSON("http://localhost:55972/api/status", function (data) {
self.services(data.services);
self.lastCheck = data.lastCheck;
servicesCompare1 = data.services;
servicesCompare2 = data.services;
});
function DashboardRefresh() {
self.servicesRefresh = ko.observable([]);
$.getJSON("http://localhost:55972/api/status", function (data) {
servicesCompare2 = data.services;
self.servicesRefresh(data.services);
});
if (servicesCompare2.length > servicesCompare1.length) {
for (i = 0; i < servicesCompare2.length - servicesCompare1.length; i++) {
var ArrayIndexToAdd = servicesCompare2.length - 1 - i;
serviceToPush = servicesCompare2[ArrayIndexToAdd];
self.services.push(serviceToPush);
}
}
else if (servicesCompare1.length > servicesCompare2.length) {
var servicesToRemove = servicesCompare1.filter(a => !servicesCompare2.includes(a));
console.log(servicesToRemove);
console.log(servicesCompare1);
console.log(servicesCompare2);
}
}
setInterval(DashboardRefresh, 1000);
Я не понимаю, в чем проблема, потому что я думаю, что это должно работать ...