Расщепление строки приводит к бесконечному циклу

Мне нужно разделить эту строку и перебрать полученный массив. Однако, хотя мой массив строк результатов содержит только 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);


        })

1 ответ

Решение

Ваш цикл имеет for(i=0;i<devices.length-1;i++) Это означает, что переменная итерации не имеет локальной области видимости. Если где-то еще i значение меняется, то это может вызвать проблемы. По привычке всегда var ваша переменная итератора, если у вас нет особых причин не делать этого (такие ситуации существуют, но встречаются довольно редко). Чтобы избежать других проблем, я бы порекомендовал просмотреть весь ваш код и убедиться, что у вас есть var там.

Другие вопросы по тегам