Почему стал pointer-ом?
Привет всем.
допустим у меня есть такой код: var obj1 = { a: 1, b: 2, }; var obj2 = { a: 3, b: 4, }; var array1 = [obj1,obj2]; var array2 = array1; console.log('array1'); console.log(array1); console.log('array2'); console.log(array2); array2.splice(0, 1); console.log('array1'); console.log(array1); console.log('array2'); console.log(array2); и вот результат кода: ![]() мне интересно почему array2 стал pointer-ом array1? вить это "=" не оператор присваивания? Пожалуйста объясните почему это происходит и как обойтись? Дополнения: <script> var obj1 = { a: 1, b: 2, }; var obj2 = { a: 3, b: 4, }; var array1 = [obj1,obj2]; var array2 = new Array; for(var i=0;i<array1.length;i++){ array2.push(array1[i]); } console.log('array1'); console.log(array1); console.log('array2'); console.log(array2); array2.splice(0, 1); console.log('array1'); console.log(array1); console.log('array2'); console.log(array2); </script> ![]() вот так я получаю то что хочу,но мне кажется что это не очень хорошая решения. |
Цитата:
Цитата:
Цитата:
var array2 = array1.slice(0); - это может спасти гиганта мысли? |
а как решить эту проблему ?
у меня есть массив(friends),в котором я храню друзей,и есть 2-ой массив(tmpFriends) на котором та же самое, но каждый раз из 2-ого массива(tmpFriends) я удаляю один элемент,мне надо что тот элемент который я удалил из второго массива (tmpFriends),не удалился из первого(friends)....как это делать ? |
Часовой пояс GMT +3, время: 14:12. |