Как узнать длину ассоциативного массива?
Пример массива:
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 Был бы не ассоциативный массив то легко бы посчитал а в данном случае как? |
к числовому нужно обращатся так:
alert(arr.test1[0]);посчитать количество можно так: alert( Object.keys( arr.test1 ).length ); |
В javascript нету ассоциативных массивов,которые есть в PHP.
у вас объект. alert(arr.test1.test1);//здесь все норм,вы получили доступ к свойству объекта alert(arr.test1[0]);//так должно сработать. У объекта так длина не определяется.Как альтернатива можно пробежатся for ...in по объекту и определить количество . |
Ошибка=(
Цитата:
|
|
FINoM,
Моя ошибка, Object с маленькой написал -в этом и ошибка,xD. |
ну как минимум IE8< данный метод не поддерживает...
|
lord2kim,
для IE думаю вариантов других нет, кроме как перебор? |
vitorrio, может и есть, но таковых не знаю(((
|
Ну по идее число ключей и значений мон узнать (если все ключи со значениями - занчит удвоенное значение кол-во ключей
<script type="text/javascript"> var arr={test:'дом',test1:{test:'дача',test1:'домик',0:'Хижина'}}; alert(arr.test1['test1']); alert(arr.test1[0].length); </script> |
Часовой пояс GMT +3, время: 13:23. |