Просмотр полной версии : Помогите запихнуть в массив значения из функции
:confused: Hi!
Есть функция, которая выдает два значения. В этой ф-ции есть цикл в результате которго эти два значения меняются. Как эти значения поместить в массив. Первые значения, чтобы содержались в массиве1, а все вторые значения в массиве2.
Papa Karlo
22.04.2002, 15:40
aaa=new Array();
bbb=new Array();
place=function(){
for(i=0;i<10;i++){
a=i*2;
b=i/2;
aaa.push(a);
bbb.push(b);
}}
_root.place();
trace(aaa);
trace(bbb);
Лучше все локальные заварить:
a_ar=new Array();
b_ar=new Array();
for(var i=0;i<10;i++){
a_ar.length = i*2;
b_ar.length = Math.sqr(i);
};
trace(a_ar);
trace(b_ar);
Тимур Старый
22.04.2002, 17:39
2Aib ты в массив забыл добавить новые значения - только значение длины массива пытаешься изменить некорректным способом...
Ошибаешься...
Опс, сорри :)
a_ar=new Array();
b_ar=new Array();
for(var i=0;i<10;i++){
a_ar[a_ar.length] = i*2;
b_ar[b_ar.length] = Math.sqrt(i);
};
trace(a_ar);
trace(b_ar);
Вроде всё теперь верно...
code:----------------------------------------------------------------------------
a_ar=new Array();
b_ar=new Array();
for(var i=0;i<10;i++){
a_ar[a_ar.length] = i*2;
b_ar[b_ar.length] = Math.sqrt(i);
};
trace(a_ar);
trace(b_ar);
--------------------------------------------------------------------------------
Aib, я не очень понимаю каким образом в данном коде идет обращение к функции из которой нужно взять зачения и впихнуть в массивы, и не совсем понимаю следущие строчки:
a_ar[a_ar.length] = i*2; (почему здесь умножение на 2)
b_ar[b_ar.length] = Math.sqrt(i); (зачем возвращать корень из указаного числа)
или это просто показано каким образом добраться до элемента массива, на данном примере?
Большое спасибо всем кто помогает мне перестать быть чайником. :)
Тимур Старый
23.04.2002, 16:38
2KSEN думаю Aib будет не против, ежели я отвечу на твои вопросы :)
Да это просто пример как дозаписывать в массив данные. Матфункции использовались только для получения "рыбы".
Т.к. array.length возвращает длину массива, а массив всегда начинается с нулевого элемента, то array[array.length] равнозначно array[array.length+1] в других языках программирования...
В примере Papa Karlo как раз то, что ты и спрашивал, если я все правильно понял.
Но может быть и другой пример:function get_dim(aaa, bbb) {
var a,b;
for (var i=0; i<10; i++) {
a = i*2;
b = i/2;
aaa.push(a);
bbb.push(b);
}
}
ccc = [];
ddd = [];
_root.get_dim(ccc, ddd);
trace(ccc);
trace(ddd); Большое спасибо всем кто помогает мне перестать быть чайником.
Чайник - это не звание - это состояние :)
2Тимур Старый
Спасибо :p :p :p
Но после твоего примера придётся обращение по ссылке объяснять.
ОБращение по ссылке - когда функции передаётся не значение переменной, а ссылка на её положение в памяти, и функция работает не с копией переменной, а с ней самой. Массив в flash - ссылочный тип.
Спасибо Aib, за последние пояснение. Не скажу, что все поняла, но теперь хоть знаю что искать. Буду рыть литературу и Интернет. :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.