Javascript.RU

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

Как узнать длину ассоциативного массива?
Пример массива:
var arr={test:'дом',test1:{test:'дача',test1:'домик',0:'Хижина'}};

//Почему тут я могу обращаться через точки к текстовым ключам,
alert(arr.test1.test1);
//домик

//а к числовому приводит к какой-то ошибке и соответсвенно вообще ничего не работает
alert(arr.test1.0);
//Syntax error at line 43 while loading: expected ')', got '.0' alert(arr.test1.0));

//И как узнать длину массива? 
alert(arr.test1.length);
//undefined

Был бы не ассоциативный массив то легко бы посчитал а в данном случае как?

Последний раз редактировалось vitorrio, 29.08.2012 в 14:18.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2012, 14:18
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

к числовому нужно обращатся так:
alert(arr.test1[0]);
посчитать количество можно так:
alert( Object.keys( arr.test1 ).length );
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2012, 14:24
Профессор
Отправить личное сообщение для bot87 Посмотреть профиль Найти все сообщения от bot87
 
Регистрация: 16.05.2011
Сообщений: 307

В javascript нету ассоциативных массивов,которые есть в PHP.
у вас объект.

alert(arr.test1.test1);//здесь все норм,вы получили доступ к свойству объекта
alert(arr.test1[0]);//так должно сработать.

У объекта так длина не определяется.Как альтернатива можно пробежатся for ...in по объекту и определить количество .
__________________
Я только учусь.Ногами просьба не бить
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2012, 15:02
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Ошибка=(
Сообщение от devote
alert( object.keys( arr.test1 ).length );
Unhandled Error: Undefined variable: object

Последний раз редактировалось vitorrio, 29.08.2012 в 15:20.
Ответить с цитированием
  #5 (permalink)  
Старый 29.08.2012, 15:13
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от vitorrio
Ошибка
Что за браузер?
https://github.com/kriskowal/es5-shim
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #6 (permalink)  
Старый 29.08.2012, 15:16
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

FINoM,
Моя ошибка, Object с маленькой написал -в этом и ошибка,xD.
Ответить с цитированием
  #7 (permalink)  
Старый 29.08.2012, 15:21
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

ну как минимум IE8< данный метод не поддерживает...
Ответить с цитированием
  #8 (permalink)  
Старый 29.08.2012, 17:25
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

lord2kim,
для IE думаю вариантов других нет, кроме как перебор?
Ответить с цитированием
  #9 (permalink)  
Старый 29.08.2012, 17:30
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

vitorrio, может и есть, но таковых не знаю(((
Ответить с цитированием
  #10 (permalink)  
Старый 29.08.2012, 17:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ну по идее число ключей и значений мон узнать (если все ключи со значениями - занчит удвоенное значение кол-во ключей
<script type="text/javascript">
var arr={test:'дом',test1:{test:'дача',test1:'домик',0:'Хижина'}};
alert(arr.test1['test1']);
alert(arr.test1[0].length);
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы. Как узнать ключ, зная значение? jsuse Общие вопросы Javascript 4 24.11.2011 19:03
Как узнать подключен ли JavaScript у пользователя? frost18 Элементы интерфейса 1 26.10.2011 17:16
Как узнать размер загружаемого файла? shkarbatov Серверные языки и технологии 5 14.08.2011 17:12
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21