Javascript.RU

 
 
Опции темы
 
Старый 10.01.2013, 15:05
Аватар для KupueIIIKo
Профессор
Отправить личное сообщение для KupueIIIKo Посмотреть профиль Найти все сообщения от KupueIIIKo
 
Регистрация: 04.10.2011
Сообщений: 357

JSON и подсчет количества элементов
Суть такова принял JSON
Код:
user
*** 0
****** id
****** st

*** 1
****** id
****** st
Принимаю через jquery с указанием формата JSON
Получается объект!
Теперь надо подсчитать сколько элементов в user)
Количество постоянно меняется!
data.user.leght - не работает! Наверно потому, что я получил объект)
Как посчитать?)
 
Старый 10.01.2013, 15:08
Аватар для KupueIIIKo
Профессор
Отправить личное сообщение для KupueIIIKo Посмотреть профиль Найти все сообщения от KupueIIIKo
 
Регистрация: 04.10.2011
Сообщений: 357

есть вариант такой
while(data.user[i])
					{
						i++;
					}
				alert(i-1);

Кто нить лучше предложит?)
 
Старый 10.01.2013, 15:12
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от KupueIIIKo
есть вариант такой
Нельзя так итерироваться по объекту!
Сообщение от KupueIIIKo
Кто нить лучше предложит?)
alert(Object.keys({foo: 1, bar: 2}).length);

Полифил, если нужен:
if (!Object.keys) {
	Object.keys = function(object) {
		var result = []
		    __own__ = Object.prototype.hasOwnProperty;

		for (var key in object) {
			if (__own__.call(object, key))
				result.push(key);
		}
		return result;
	};
}

Последний раз редактировалось monolithed, 10.01.2013 в 15:21.
 
Старый 10.01.2013, 15:29
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от monolithed
Полифил, если нужен:
а более идеальным не считать ключи, а посылать с сервера не объект а массив.

PHP метод json_encode, вполне нормально массив превращает в массив а не в объект с хешами, но массив не должен содержать хеш ключи, лишь только номера по порядку:
$data = array(
    "user" => array(
        // массив с ключем 0
        array(
            'id' => 1,
            'name' => "vasya",
        ),
        // массив с ключем 1
        array(
            'id' => 2,
            'name' => "petya",
        ),
        // и т.д.
    )
);

echo json_encode( $data );

далее в JS будет доступно:
data.user.length
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
 
Старый 10.01.2013, 15:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Имхо идеальный вариант Нулевой ключ с массивом всех ключей в объекте и далее ключи значения
 
Старый 10.01.2013, 15:32
Аватар для KupueIIIKo
Профессор
Отправить личное сообщение для KupueIIIKo Посмотреть профиль Найти все сообщения от KupueIIIKo
 
Регистрация: 04.10.2011
Сообщений: 357

А серавно придется через while
Сказали посчитать сколько st имеет значение например 12
 
Старый 10.01.2013, 15:33
Аватар для KupueIIIKo
Профессор
Отправить личное сообщение для KupueIIIKo Посмотреть профиль Найти все сообщения от KupueIIIKo
 
Регистрация: 04.10.2011
Сообщений: 357

while(data.user[i])
					{
						if(data.user[i].st==12)
							{
								vq++;
							}
						i++;
					}
 
Старый 10.01.2013, 16:14
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от KupueIIIKo
while(data.user[i])
инструкция while только для массивов

Сообщение от KupueIIIKo
Сказали посчитать сколько st имеет значение например 12
[1, 1, 2, 3, 1].filter(function(item) {
   return item == 1;
}).length; // 3
 

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет количества кликов мыши на объект в jquery Евгений_86 Events/DOM/Window 27 03.02.2019 03:46
Подсчет количества повторений слов Макс [44] Общие вопросы Javascript 4 25.04.2012 18:18
Подсчет количества цветов miakacat Общие вопросы Javascript 17 06.01.2012 13:21
Вывод переменного по количеству элементов массива из json ArmagedDance Элементы интерфейса 4 08.06.2011 10:45
Подсчет количества слов в поле формы. Guranin Общие вопросы Javascript 7 10.08.2009 13:35


© Илья Кантор, 2007-2021 О проекте - Архив форума - Вверх