Есть следующий код, функция для перебора массива и функция для работы с элементом массива -handler4. Которая должна взять строку из массива и сделать из неё новую abc->cba; 123->321
При использовании цикла for в функции handler4 происходит бесконечная итерация, почему так? Если использовать for(i=0;i<strings.length;i++) то нет бесконечного цикла, но выводится только первый элемент массива. Почему так?
let textArray = ["abc", 123];
function processArray(array, callback) {
let value = "New value: ";
for (i = 0; i < array.length; i++)
//console.log(i)
value += callback(array[i]);
return value;
}
function handler4(element) {
let backwards = "";
let strings = element.toString();
for (i = strings.length - 1; i >= 0; i--) backwards += strings[i];
console.log(element);
return backwards + ", ";
}
alert(processArray(textArray,handler4))
У Вас i - одна и та же глобальная переменная. Ее надо объявлять как локальную в каждой функции:
for (var i = 0; i < array.length; i++)
...
for (var i = strings.length - 1; i >= 0; i--) backwards += strings[i];
let textArray = ["abc", 123];
function processArray(array, callback) {
let value = "New value: ";
for (var i = 0; i < array.length; i++)
//console.log(i)
value += callback(array[i]);
return value;
}
function handler4(element) {
let backwards = "";
let strings = element.toString();
for (var i = strings.length - 1; i >= 0; i--) backwards += strings[i];
console.log(element);
return backwards + ", ";
}
console.log(processArray(textArray, handler4))
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости