Javascript.RU

PHP-функция: count

Пермалинк: http://javascript.ru/php/count

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


Автор: Arm (не зарегистрирован), дата: 14 апреля, 2009 - 09:36
#permalink

и в каком месте это аналог пхп? по результату?


Автор: Гость (не зарегистрирован), дата: 7 сентября, 2009 - 13:29
#permalink

++cnt; — быстрее, не создаётся временной переменной для значения до инкремента.


Автор: Mr. Freeman (не зарегистрирован), дата: 7 мая, 2011 - 00:02
#permalink

а чем вам не нравится стандартное рещение my_array.length


Автор: StylUS (не зарегистрирован), дата: 5 июня, 2011 - 15:15
#permalink

>> а чем вам не нравится стандартное рещение my_array.length
тем, что оно работает совсем не так. как известно, возвращает последний ключ в массиве+1. Следовательно, работает только если ключ - число.
а если в качесиве ключа используется строка, то .length не возвращает ничего.

не знаю как тут работает ваш код, я решил задачу довольно банально:

function count(array)
	{
	var cnt=0;
	for (var i in array)
		{
		if (i)
			{
			cnt++
			}
		}
	return cnt
	}

 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum