Javascript:
function count( mixed_var, mode ) { // Count elements in an array, or properties in an object
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + input by: _argos
var key, cnt = 0;
if( mode == 'COUNT_RECURSIVE' ) mode = 1;
if( mode != 1 ) mode = 0;
for (key in mixed_var){
cnt++;
if( mode==1 && mixed_var[key] && (mixed_var[key].constructor === Array || mixed_var[key].constructor === Object) ){
cnt += count(mixed_var[key], 1);
}
}
return cnt;
}
Примеры:
count([[0,0],[0,-4]], 'COUNT_RECURSIVE');
6
count({'one' : [1,2,3,4,5]}, 'COUNT_RECURSIVE');
6
|
и в каком месте это аналог пхп? по результату?
++cnt; — быстрее, не создаётся временной переменной для значения до инкремента.
а чем вам не нравится стандартное рещение my_array.length
>> а чем вам не нравится стандартное рещение my_array.length
тем, что оно работает совсем не так. как известно, возвращает последний ключ в массиве+1. Следовательно, работает только если ключ - число.
а если в качесиве ключа используется строка, то .length не возвращает ничего.
не знаю как тут работает ваш код, я решил задачу довольно банально:
function count(c){var a=0,b;for(b in c)b&&a++;return a}
rewreweweeeeeeeeeeeeeee
Anonse erotyczne staszów
Roksa częstochowie
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.