PDA

Просмотр полной версии : MX: такой бред с массивами я в шоке


gonzalez
27.01.2003, 05:10
задаю массив
ba_array_original = new Array("blue", "green", "magneta", "red", "yellow");

потом пишу

ba_array = ba_array_original;

потом делаю ba_array.splice(2, 1);

и оказывается что в оригинальном массиве тоже сделан splice....

что за лажа, зачем вообще тогда делать копию если во флеше так тупо все пашет?

а с переменными такаяже бойда? или я крупно торможу тут?

DMN
27.01.2003, 05:21
Вот так, например:

ba_array_original = new Array("blue", "green", "magneta", "red", "yellow");
ba_array = ba_array_original.concat();

Nox Noctis
27.01.2003, 05:50
поясню что сказал ДМН :)

написав имя_массива = имя_другого_массива; ты всего лишь сделаешь еще одну ссылку на уже существующий массив.
то есть в памяти существует один массив - но на него ссылаются две разные переменные.

с любым объектом будет то же самое.

тебе в данном случае нужно скопировать объект...
можно так, как сделал ДМН -
функция конкат возвращает НОВЫЙ массив сделанный из того,
что ей передали в параметрах и того, что было исходно.
поскольку параметров нет - то и возвращается точная копия исходного массива.

с переменными типа "строка" и "число" такой заморочки нет.

gonzalez
27.01.2003, 06:57
все понял - все заработало как надо :)