0

I have two nested arrays and I need to get different values in to variable/array. For example: servicesCompare1[{serviceId: 112, name: services1},{serviceId: 113, name: services2}]

servicesCompare2[{serviceId: 113, name: services2}]

I need to get {serviceId: 112, name: services1} in to the variable.

I found many and many solutions but everyone I tried I got both of services. Not just that one I need. For example this: http://jsfiddle.net/WgykC/ ( I did it same, but still got value of servicesCompare1.)

My code:

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);

I don't understand what's the problem beacuse I think it should work...

Ondra Bařina
  • 33
  • 1
  • 6

0 Answers0