Почему стал 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, время: 10:07. |