При изменении одного массива меняется другой
Пишу код для нахождения полиндромов в строке, но проблема в том, что, когда я присвоил значения одного массива другому, и меняю значения второго массива, первый массив тоже меняется, хотя в цикле я его не указывал вообще. Как от этого избавиться и почему это происходит?
btn.onclick = function(){
let str=document.querySelector('.str');
str=[...str.value].reverse();//переворачиваю строку
let count_str=[], i, j, val,len;
count_str=str;
len=count_str.length-1;
for(i=0;i<=len;i++){
val=count_str[0];
count_str[i]=count_str[len];
count_str[len]=val;
}
alert(str);
}
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Массив в Javascript - это объект и он передаётся по ссылке, а не по значению Для корректного поверхностного копирования можно использовать slice:
count_str = str.slice(0);
Ещё больше вариантов тут:
