Массив NULL, не знаю как - PullRequest
       1

Массив NULL, не знаю как

0 голосов
/ 15 февраля 2012

след (suallar); - написано 2 раза 1-й раз - ЗДЕСЬ ПОКАЗЫВАЕТ ВСЕ ЭЛЕМЕНТЫ АРМАТУРЫ suallar 2-й раз - НО ЗДЕСЬ, ЧТО ЭТОТ ЯРМАРКА, ПОКАЗЫВАЕТСЯ ПУСТОЙ, ДАЖЕ, ЧТО Я НЕ МАНИПУЛИРОВАЛ С ЭТИМ ИЛИ СДЕЛАЛ ЭТОМ РАВНЫМ ЧЕМ-ТО, ЧТО Я МАНИПУЛИРУЮ В СРЕДИ

var suallar:Array = new Array();
var i:int;
var cavablar:Array=new Array();

suallar.push(["sual1", "duz1", "sehv11", "sevh12", "sevh13","sevh14"]);
suallar.push(["sual2", "duz2", "sehv21", "sevh22","sevh23","sevh24" ]);
suallar.push(["sual3", "duz3", "sehv31", "sevh32","sevh33","sevh34"]);
suallar.push(["sual4", "duz4", "sehv41", "sevh42","sevh43","sevh44"]);
suallar.push(["sual5", "duz5", "sehv51", "sevh52","sevh53","sevh54"]);



var cavablar_temp:Array = suallar.concat();

for (i=0; i<suallar.length; i++){
    cavablar_temp[i].shift();
}

trace (suallar);


for (i=0; i<suallar.length;i++){

var number_array:Array = cavablar_temp[i];

var final_array:Array = [];

var count_selected:int = 5;
for (var u = 0; u < count_selected; u++)
{
    if (number_array.length == 0)
    {
        break;
    }
    else
    {
        final_array.push(number_array.splice(Math.floor(Math.random() * number_array.length), 1)[0]);

    }   

}
    cavablar.push(final_array);}

trace(cavablar.join("\n"));

trace (suallar); 

1 Ответ

0 голосов
/ 15 февраля 2012

Согласно документации Array.splice () :

Добавляет элементы и удаляет элементы из массива. Этот метод изменяет массив без копирования.

Когда вы делаете number_array.splice() в середине цикла, вы изменяете исходные массивы, которые вы нажали, на suallar.

Взгляните на Array.slice(), который возвращает новый массив без изменения оригинала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...