глубокое клонирование массива

167
26 марта 2019, 22:30

Дан массив arr['1','2',['3',{number:'4'}],'5'] нужно сделать его клон без использования методов slice и т.д. Написал пока только для массива

 var myArr =['1','2',['3',{number:'4'}],'5'];
var arrClone=[];
for(var i=0;i<myArr.length;i++){
if(typeof(myArr[i])==='object')
{
    var arr=[];
    for(var j=0;j<myArr[i].length;j++){
        arr[j]=myArr[i][j];
    }

    arrClone[i]=arr;
}else { arrClone[i]=myArr[i]}
}
Answer 1

function copyObject(obj){ 
  var copy = (obj instanceof Array)? [] : {}; 
    for (var key in obj) { 
      if(typeof(obj[key]) === 'object'){ 
        copy[key] = copyObject(obj[key]); 
      } else { 
        copy[key] = obj[key]; 
      } 
         
    } 
    return copy; 
} 
 
var myArr =['1','2',['3',{number:'4'}],'5'], 
    newArr = copyObject(myArr); 
 
 
myArr[0] = 3; 
myArr[2][1].number = 9999; 
 
console.log(myArr, newArr);

В результате такого копирования получились две полностью независимые переменные, в каждой из которых хранится массив.

UPD: Обновил код.

READ ALSO
Unhandled rejection TypeError: Cannot read property &#39;tblUsers&#39; of undefined

Unhandled rejection TypeError: Cannot read property 'tblUsers' of undefined

Всем привет, не могу понять как задать поле у классаИспользую node v10

132
помогите пожалуйста с owl-carousel2

помогите пожалуйста с owl-carousel2

Помогите с помощью плагина owl-carousel2 сделать autoplay через 3 секунды

156
Сумма чисел массива

Сумма чисел массива

Задачи: есть две переменные "a" и "b" необходимо произвести сумму чисел от переменной "а" до переменной "b"

138
Как вызвать magnific popup без клика?

Как вызвать magnific popup без клика?

Как можно вызвать Magnific Popup без клика на кнопку? Я нашел паблик методы в документации, но не могу разобраться как реализовать

166