24.09.2011, 11:32
|
Профессор
|
|
Регистрация: 31.10.2009
Сообщений: 151
|
|
Определить тип массива
Здравствуйте!
Подскажите как отличить обычный массив от ассоциативного ?
var a = [1,2,3,4,5];
var b = {'var1':1, 'var2':2}
|
|
24.09.2011, 11:43
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
|
|
24.09.2011, 12:49
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Однозначно, учить основы! По теме:
if( !Array.isArray ) Array.isArray = function(){
return Object.prototype.toString.call( arguments[ 0 ] ) == "[object Array]";
};
var a = [1,2,3,4,5];
var b = {'var1':1, 'var2':2};
alert([ Array.isArray( a ), Array.isArray( b ) ]);
|
|
25.01.2012, 22:47
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Andrei
|
Подскажите как отличить обычный массив от ассоциативного ?
|
в JS нет ассоциативных массивов. То, что вы считаете за оное, является объектом. А точнее, хешем.
|
|
26.01.2012, 04:40
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от melky
|
в JS нет ассоциативных массивов
|
Эм, а как отличить объект от ассоциативного массива или хеша? Мне вот крайне трудно догнать эту разницу в том же php (за исключением, что объект создается конструктором).
|
|
26.01.2012, 05:26
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от FINoM
|
Эм, а как отличить объект от ассоциативного массива или хеша? Мне вот крайне трудно догнать эту разницу в том же php (за исключением, что объект создается конструктором).
|
обьект это сущность таблица из двух стобликов (свойства - значения) свойства, методы.
Ассоц-массив это таблица из двух стобликов (слово - ассоциация)
хэш это таблица из двух столбцов (ключ - значение)
В ДАННОМ СЛУЧАЕ В JS это одно и то же! Всем привет!
|
|
26.01.2012, 12:28
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
var a = [1, 2, 3, 4, 5]; // массив
var b = { var1: 1, var2: 2 }; // объект, который может выступать как ассоциативный массив
alert(a instanceof Array); // true
alert(b instanceof Object); // true
// при этом
alert(a instanceof Object); // true
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
26.01.2012, 12:37
|
Профессор
|
|
Регистрация: 25.12.2011
Сообщений: 786
|
|
Ну обьект я имею ввиду не как Класс, а как сама суть устройство!
Классы то ясен хрен наследуют))
То есть a в данном случае имеет дедушку Object/ Оператор доходит до Array? смотрит, не, не то, идет дальше, смотрит , да, во во, то! И выдает тру!
a => Array => Object
Последний раз редактировалось Livaanderiamarum, 26.01.2012 в 12:47.
|
|
26.01.2012, 12:43
|
Профессор
|
|
Регистрация: 25.12.2011
Сообщений: 786
|
|
Щас обьясню в чем разница в стиле моей книги)
ХЭШ это фигня которую придумали люди, абстракция)
это просто название)
хэшэм может работать все из двух столбцов , где правое значение в строчке логически соответствует левому! Даже долбанный массив обычный можно понимать как хэш.
В ДАННО СЛУЧАЕ это просто игра слов!
А то что люди говорят - это не то, это другое, это выевыемоны) можешь их даже не слушать и не напрягать мозг)
я обьяснил что это такое, нет в js ни хешей нет ни ассоц массивов) ни чего этого нет.
Дело в том что это все одно и то же, ПОТОМУ ЧТО РАБОТАЕТ ОДИНАКОГО ПРОСТО НАЗВАНИЯ РАЗНЫЕ, да и обьекты в js с этим тоже одно и то же отому что подходят под описание этих хешей, ассоц массивов и.т.п.)
вот.
|
|
26.01.2012, 14:42
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от FINoM
|
Эм, а как отличить объект от ассоциативного массива или хеша?
|
Как отличить кошку от кошки, а белку от белки? Объекты в JS это и есть хеши.
|
|
|
|