Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ассоциативный и обычный массив. Почему не получается получить свойство? (https://javascript.ru/forum/misc/23736-associativnyjj-i-obychnyjj-massiv-pochemu-ne-poluchaetsya-poluchit-svojjstvo.html)

jsuse 04.12.2011 02:47

Ассоциативный и обычный массив. Почему не получается получить свойство?
 
Вот есть код ассоциативного массива:
var arr = {
	a: dom_1,
	b: dom_2,
	c: dom_3
}

И есть простой массив:
var b = Array;
b[0] = "a";

Хочу получить доступ к свойству dom_1 ассоциативного массива. Использую такие варианты:
var q = arr.b[0];    // не работает, в ошибку пишет TypeError: Cannot read property '0' of undefined

// или так пробую
var z = b[0]   // в z получает "a"
var q = arr.z  // но так все равно ничего не выдает, пишет просто undefined


Почему так? Возможно ли вообще так обратится к ассоциативному массиву?

trikadin 04.12.2011 02:49

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://htmlbook.ru

Задавайте конкретные вопросы по ходу дела.

Gvozd 04.12.2011 02:54

http://javascript.ru/accessors

jsuse 04.12.2011 02:58

Цитата:

Сообщение от trikadin (Сообщение 140624)
На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://htmlbook.ru
Задавайте конкретные вопросы по ходу дела.

Я задал более чем конкретный вопрос. Лучшее, что Вы могли бы сделать, если жмете прямой ответ - это подсказать, где именно найти об этом информацию в учебнике. А вот такие ответы, как вы дали, я бы хотел попросить Вас больше не писать вообще. Полезней для форума будет. Ссылки на учебники на сайте я и сам могу найти. Спасибо.

FINoM 04.12.2011 04:42

var z = b[0] 
var q = arr[z]

// или
var q = arr[b[0]]

nerv_ 04.12.2011 10:36

var obj = { a:1, b:2, c:3 }; // объект
var arr = [1, 2, 3]; // массив

alert(obj['a']) // объект как ассоциативный массив
alert(arr[0]) // элемент массива

trikadin 04.12.2011 10:45

Цитата:

Сообщение от jsuse
А вот такие ответы, как вы дали, я бы хотел попросить Вас больше не писать вообще. Полезней для форума будет. Ссылки на учебники на сайте я и сам могу найти. Спасибо.

Такие вопросы, какие вы задали, я бы хотел попросить Вас больше не задавать вообще.

jsuse, Вы уже, наверное, в пятой теме задаёте пустяковые вопросы, ответы на которые находятся внимательным чтением учебника на этом сайте. На предыдущие четыре (или сколько их там было) я отвечал. Но нет смысла конкретно отвечать человеку, который не старается приложить силы для самостоятельного изучения языка. Поэтому я и предложил вам почитать учебник на сайте.

И, напоследок: я сам буду решать, какие ответы мне давать, а какие - нет. Смекаешь?

devote 04.12.2011 10:46

Цитата:

Сообщение от jsuse (Сообщение 140623)
var q = arr.b[0];    // не работает, в ошибку пишет TypeError: Cannot read property '0' of undefined

оно и не будет работать, в вашем объекте нет такого элемента, что бы оно работало ваш объект должен выглядить так:
var arr = {
	a: dom_1,
	b: ["blablah"],
	c: dom_3
}


Цитата:

Сообщение от jsuse (Сообщение 140623)
var q = arr.z  // но так все равно ничего не выдает, пишет просто undefined

По поводу этого, тоже самое что я написал выше, элемента "z" нету в вашем объекте.

nerv_ 04.12.2011 10:49

trikadin, будет Вам, не злитесь :)

jsuse, как Вы относитесь к людям, так и они будут к Вам относиться. Будьте уважительней.

trikadin 04.12.2011 10:51

Цитата:

Сообщение от nerv_
trikadin, будет Вам, не злитесь

Спокоен как слон) Это лишь видимость)

Но по поводу этого парня - всё правда) Действительно уже пора бы что-то изучить самому.


Часовой пояс GMT +3, время: 19:54.