Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2013, 14:05
Аватар для KupueIIIKo
Профессор
Отправить личное сообщение для KupueIIIKo Посмотреть профиль Найти все сообщения от KupueIIIKo
 
Регистрация: 04.10.2011
Сообщений: 357

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

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

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

Кто нить лучше предложит?)
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2013, 14: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 в 14:21.
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2013, 14: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
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2013, 14:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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

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

while(data.user[i])
					{
						if(data.user[i].st==12)
							{
								vq++;
							}
						i++;
					}
Ответить с цитированием
  #8 (permalink)  
Старый 10.01.2013, 15: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 12:21
Вывод переменного по количеству элементов массива из json ArmagedDance Элементы интерфейса 4 08.06.2011 10:45
Подсчет количества слов в поле формы. Guranin Общие вопросы Javascript 7 10.08.2009 13:35