Дан массив 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]}
}
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: Обновил код.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости