|
|
|
| Меня интересует есть ли возможность использовать строку как индекс элемента массива в Javascript. Т.е. аналог того, что есть в PHP:
$car = array("pc" => "passenger car", "lr" => "land-rover");
|
где $car["lr"] вернет "land-rover".
Если такая возможность есть - то какой синтаксис описания таких массивов? | |
|
|
|
|
|
|
|
для: tyoma_first
(09.02.2009 в 02:03)
| |
var car = {
"pc" : "passenger car",
"lr" : "land-rover"
};
|
| |
|
|
|
|
|
|
|
для: Drago
(09.02.2009 в 02:08)
| | Спасибо, попробовал этот вариант и похоже отвалилась возможность обращаться к массиву по индексу :(
Я сделал так (мне нужноработать с многомерными массивами):
var array= {
"key1" : ["value1","value2"],
"key2": ["value3","value4"]
};
|
И если обращаюсь к элементу как array["key2"][0] - то все ОК, а если array[1][0] - то скрипт вылетает с ошибкой... Можно ли использовать строковые индексы одновременно с числовыми? | |
|
|
|
|
|
|
|
для: tyoma_first
(09.02.2009 в 02:32)
| | >Можно ли использовать строковые индексы одновременно с числовыми?
Нет, конечно.
Для того, чтобы пройтись по ассоциативному массиву, можно воспользоваться специальной версией цикла for:
for (var i in array_name) {
alert(array_name[i]);
}
|
| |
|
|
|
|
|
|
|
для: Drago
(09.02.2009 в 03:03)
| | Спасибо! и последний вопрос... Можно ли как то проверить наличие строкового индекса в массиве, напр. есть ли элемент array["key3"]? Как вариант я могу использовать try-catch, но интересует есть ли более красивый вариант.
Еще раз спасибо! | |
|
|
|
|
|
|
|
для: tyoma_first
(09.02.2009 в 03:09)
| |
if (typeof array["key3"] != 'undefined')
alert('true')
else
alert('false')
|
| |
|
|
|
|
|
|
|
для: Drago
(09.02.2009 в 02:08)
| | . | |
|
|
|
|
|
|
|
для: tyoma_first
(09.02.2009 в 02:03)
| |
var arr = []
arr['xxx'] = 'yyy'
alert(arr['xxx'])
|
| |
|
|
|