Jscript связь между массивами
Модератор: Duncon
Обнаружил совершенно случайно, что при добавлении в массив элемента из другого массива и изменении значения одного из элементов в данном массиве почему-то изменяется значение именно этого элемента в массиве, из которого добавлялся элемент!? Проверил на .push() и unshift результат одинаков!? Это дико мешает в работе, т.к. значения исходного массива все время меняются!? Кто встречал такой эффект!?
Тыб код привёл..
[syntax=Delphi] [/syntax]
Обнаружил совершенно случайно, что при добавлении в массив элемента из другого массива и изменении значения одного из элементов в данном массиве почему-то изменяется значение именно этого элемента в массиве, из которого добавлялся элемент!? Проверил на .push() и unshift результат одинаков!? Это дико мешает в работе, т.к. значения исходного массива все время меняются!? Кто встречал такой эффект!?
vert2.push([1,1,1])
vert3.unshift(vert2[0]) ;
vert3[0][0]*=100;
alert(vert3[0][0]);alert(vert2[0][0]);
vert2.push([1,1,1])
vert3.unshift(vert2[0]) ;
vert3[0][0]*=100;
alert(vert3[0][0]);alert(vert2[0][0]);
Инициализация массивов где?
[syntax=Delphi] [/syntax]
Что трудно добавить vert2=[] vert3=[]? Так я проверил, что если добавлять в новый массив не : vert3.push(vert2[0]) а вот так - vert3.push([vert2[0][0],vert2[0][1],vert2[0][2]]) , то явления изменения исходного массива не происходит!? Во кино!?
Хромопера - 100,100
IE9 - 100,100
FF - 100, 100
ЧЯДНТ?
IE9 - 100,100
FF - 100, 100
ЧЯДНТ?
It's a long way to the top if you wanna rock'n'roll
Кранты!? Что же делать? У меня скрипт 64 раза формирует массив из исходного массива 8 точек и после масштабирования исходный массив использовать нельзя!? Пришлось формировать каждый раз формировать этот массив снова!?
Поскольку vert2[0] - это объект (элемент массива), то в vert3 идет ссылка на него. Отсюда и проблема.
It's a long way to the top if you wanna rock'n'roll
Я так и подумал!? Сейчас это мне мешает, но где-то может пригодиться. Спасибо за общение! Тема закрыта.