09.01.2015, 22:15
|
|
Интересующийся
|
|
Регистрация: 05.01.2015
Сообщений: 19
|
|
индексация строками
Подскажите пожалуйста, как узнать длину подобного массива?
worker = new Array;
worker["фамилия"] = "Петров";
worker["имя"] = "Николай";
worker["возраст"] = 35;
worker["образование"] = "Высшее";
worker["должность"] = "Главный инженер";
worker["оклад"] = 40000 + "руб.";
Если строки заменить индексами, свойство length отображает длину. А тут видимо иначе как-то
|
|
09.01.2015, 22:29
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
var worker = {
"фамилия": "Петров",
"имя": "Николай",
"возраст": 35,
"образование": "Высшее",
"должность": "Главный инженер",
"оклад": 40000 + "руб."
};
alert(Object.keys(worker).length);
|
|
09.01.2015, 22:40
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Прочитай про массивы и объекты по подробнее. В JS нет ассоциативных массивов, вместо них можно использовать объекты как в примере Octane. Но в тоже самое время массивы в JS являются особыми типами объектов, благодаря чему к ним можно добавлять свойства.
|
|
09.01.2015, 22:58
|
|
Интересующийся
|
|
Регистрация: 05.01.2015
Сообщений: 19
|
|
Сообщение от Safort
|
В JS нет ассоциативных массивов
|
Пару учебников, в данный момент открытые передо мной, утверждает обратное. Спасибо за ответы, буду разбираться дальше...
|
|
09.01.2015, 23:19
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
nayldock,
Цитата:
|
Пару учебников, в данный момент открытые передо мной, утверждает обратное.
|
А можно ссылочки на страницы этих учебников?
|
|
10.01.2015, 06:43
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Safort, в JS объекты и есть ассоциативные массивы. По крайней мере, многие так утверждают.
|
|
10.01.2015, 09:03
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
Пару учебников, в данный момент открытые передо мной, утверждает обратное. Спасибо за ответы, буду разбираться дальше...
|
В JS массивы МОГУТ быть ассоциативными, но это исключительно побочный эффект, возникающий от того, что Array наследует от Object. Для хранения значений по строковым ключам используются объекты, для того они и предназначены.
|
|
10.01.2015, 10:26
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Safort
|
А можно ссылочки на страницы этих учебников?
|
http://learn.javascript.ru/object
интерфейс реализован (если так можно сказать в данном случае с учётом названия операций), значит являются
то, что при этом возможностей больше, этому не мешает
|
|
10.01.2015, 22:15
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Ruslan_xDD,
Цитата:
|
Safort, в JS объекты и есть ассоциативные массивы. По крайней мере, многие так утверждают.
|
Не совсем, потому, что
Сообщение от Erolast
|
Array наследует от Object. Для хранения значений по строковым ключам используются объекты, для того они и предназначены.
|
и ещё
var o = {};
alert(typeof o);
Но, если рассматривать их с точки зрения утиного теста, то вполне.
|
|
10.01.2015, 22:37
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Safort
|
Но, если рассматривать их с точки зрения утиного теста, то вполне.
|
подоплёка там такая
определение понятия:
понятие = родовое понятие + видовые отличия
например,
Цитата:
|
Шарик — бездомная собака, после опытной операции профессора Преображенского, ставшая человекообразным существом
|
как ни крути, Шарик - это собака
|
|
|
|