![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2005
Сообщений: 38
|
Посоветуйте пожалуйста, что не так
Трэйсом должно вывести сумму элементов массива, переданных в Iar Последний раз редактировалось gurman; 10.01.2008 в 12:47. |
|
|||||
|
Регистрация: Feb 2006
Адрес: Moscow
Сообщений: 552
|
что это за переменные такие?
![]() у вас result (если ранее не объявлен) равен undefined (NaN), counts тоже чепуха какая-то, о которой ранее не говорится (из того фрагмента кода), затем объявляется переменная sumr равная 0 и она же возвращается (зачем тогда вся эта функция, если по данному куску кода можно было просто написать sumr = 0 и не вызывать никакую функцию) и зачем возвращать значение переменной, над которой никаких действий не производилось? бред короче ![]()
__________________
Учимся правильно задавать вопросы |
|
|||||
|
Banned
Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
а какой результат вы хотите видеть?
counts не объявлен массив, а элементы в нем не содержатся. добавляйте любой элемент в массив с помощью таких методов, напр: var someArr:Array = new Array();
someArr.push('happy'); // someArr[0]
someArr.push('funny'); // someArr[1]
someArr.unshift('xD'); // someArr[0]
// someArr[1] = 'happy';
// someArr[2] = 'funny';
someArr.splice(1, 0, ':P'); // someArr[1]
trace(someArr); // xD, :P, happy, funny
![]() |
|
|||||
|
Modus ponens
|
Класс MArray
class MArray extends Array {
function MArray(){
if(arguments.length>1 || (isNaN(arguments[0])&&arguments.length==1)){
for(var i:Number=0;i<arguments.length;i++){
this.push(arguments[i]);
}
} else if(!isNaN(arguments[0])&&arguments.length==1){
for(var i:Number=0;i<arguments[0];i++){
this.push(undefined);
}
}
}
function summ():Number {
var n:Number = 0;
var i:Number = 0;
trace(this);
trace(this.length);
while(i<this.length){
if(!isNaN(this[i])){
n+=this[i];
}
i++;
}
return n;
}
}
var _marr:MArray = new MArray('a',0,.45,90,{a:'s'});
trace(_marr);
trace(_marr.summ());
_marr.push('lalala');
trace(_marr);
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 10.01.2008 в 16:44. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
wvxvw, оригинальный конструктор класса. Ну то, что написан, мягко говоря, криво, так ещё и цикл в else if получится бесконечный.
|
|
|||||
|
Modus ponens
|
Цитата:
PS: Вот, странная штука, не могу понять. Почему в конструкторе this трейсится нормально, а функциях класса - нет?
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Этот шедевр покруче предыдущего
![]() Хотя бы так (с восьмой версии): |
|
|||||
|
Modus ponens
|
Цитата:
Кразифлашер - при чем тут паблик/прайвет? Если не объявлено - значит паблик. И это к теме никакого отношения не имеет. Мне не нужно вызывать пуш или еще какой метод, мне надо, чтобы конструктор Array'я был так же конструктором моего класса, ну или что-нибудь, что делало бы то же самое. И вопрос в последнем посте - не как сделать по-другому (это я как-нть и сам могу =), а почему this из конструктора и из метода трейсится по-разному.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 10.01.2008 в 17:02. |
|
|||||
|
listener
|
var counts = [4, 7, 2];
SumArr = function (Iar) {
var sumr = 0;
var i = 0;
while (i < Iar) {
sumr += counts[i];
i++;
}
return sumr;
};
sumr = SumArr(2);
trace(sumr);
Последний раз редактировалось alexcon314; 10.01.2008 в 14:00. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 38
|
alexcon314 спасибо, с переменными исправлюсь
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|