Как циклом сложить значения свойств объекта?
В учебнике есть пример с использованием this.a+this.b
Но что если свойств десятки?
var o = {a:1, b:34, c:352} //итд.
function s(obj) {
for(key in obj) {
obj[key]+? //..... kak tut?
}
}
s(o)
|
var o = {a:1, b:34, c:352} //итд.
function s(obj) {
var rez = 0;
for(key in obj) {
rez += obj[key];
}
return rez;
}
alert(s(o));
|
спасибо, а вот еще вопросик, надо чтобы при вызове ф-и f(); ее параметр записывался в массив, вот только при каждом вызове, он его перезаписывает, а не добавляет :
function f(x) {
var mass = [];
mass.push(x);
alert(mass[0]) // сначало 1, а потом 2 (и все на индексе [0])
}
f(1);
f(2);
|
вам нужно использовать замыкания, вот пример простого счетчика
http://learn.javascript.ru/closures-usage |
Спасибо, с данный материалом все ясно, получилось сделать следующее
function mass() {
var m = [];
return function(arg) {
m.push(arg)
return m;
}
}
var mas = mass();
mas(122);
mas(323)
alert(mas()) // оба аргумента в массиве[/HTML]
Но как быть если ф-ю с этими аргументами передаются из другой ф-и? :
function mass() { // должна учитывать переданные аргументы
var m = [];
return function(arg) {
m.push(arg)
return m;
}
}
var copy;
function argument(arg) {
// возможно какие-то манипуляции с arg
copy = mass();
copy(arg)
}
argument(1);
argument(23);
alert(copy()) // в массиве только 23 :(((
|
hoax,
может вам 20 строку перенести на 15 ? |
Цитата:
Иначе либо рисуйте объект, либо юзайте функцию как объект, поскольку она и так объект. На нормальном языке программирования ваше желания выражается статической переменной, которую можно в js изобразить как вот тут советуют http://stackoverflow.com/questions/1...-in-javascript |
| Часовой пояс GMT +3, время: 08:31. |