我需要拆分此字符串并遍历结果数组。但是,即使我的结果字符串数组只有3个项目,我的循环也会达到无穷大。

我可能会丢失一些东西,但目前看不到。

这是代码:

CustomizeDashboardService.getCustomizedDashboard().then(function (res) {
            console.log(res);


            var sensors = res.sensor.split(',');
            var devices = res.uuid.split(',');;

            console.log("CS: S",sensors)   // I Can see these 2 arrays have only 3 items each,
            console.log("CS: D",devices)   //  but when it goes into my for loop, it iterates to indefinite

            for(i=0;i<devices.length-1;i++){
                console.log("girdi")  // I see this is logging more than 1000 times

                var index = findIndex(devices[i]);

                var obj = {
                    device:self.deviceList[index],
                    sensor: sensors[i]
                }

                self.customizedSensors.push(obj);


            }



            console.log("customized sensors",self.customizedSensors);


        })

最佳答案

您的循环具有for(i=0;i<devices.length-1;i++),这意味着迭代变量不在本地范围内。如果其他地方的i值被更改,则可能导致问题。习惯上,除非您有非常特定的理由不这样做,否则请始终var迭代器变量(确实存在,但很少见)。为避免其他问题,我建议您仔细阅读所有代码,并确保其中包含var

10-01 16:53