Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определить тип массива (https://javascript.ru/forum/misc/21789-opredelit-tip-massiva.html)

Andrei 24.09.2011 11:32

Определить тип массива
 
Здравствуйте!

Подскажите как отличить обычный массив от ассоциативного ?

var a = [1,2,3,4,5];
var b = {'var1':1, 'var2':2}

B@rmaley.e><e 24.09.2011 11:43

Для начала прочитать это: http://alljs.ru/articles/array/whatis

Sweet 24.09.2011 12:49

Однозначно, учить основы! По теме:
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 ) ]);

melky 25.01.2012 22:47

Цитата:

Сообщение от Andrei (Сообщение 127879)
Подскажите как отличить обычный массив от ассоциативного ?

в JS нет ассоциативных массивов. То, что вы считаете за оное, является объектом. А точнее, хешем.

FINoM 26.01.2012 04:40

Цитата:

Сообщение от melky
в JS нет ассоциативных массивов

Эм, а как отличить объект от ассоциативного массива или хеша? Мне вот крайне трудно догнать эту разницу в том же php (за исключением, что объект создается конструктором).

Livanderiaamarum 26.01.2012 05:26

Цитата:

Сообщение от FINoM (Сообщение 152925)
Эм, а как отличить объект от ассоциативного массива или хеша? Мне вот крайне трудно догнать эту разницу в том же php (за исключением, что объект создается конструктором).

обьект это сущность таблица из двух стобликов (свойства - значения) свойства, методы.

Ассоц-массив это таблица из двух стобликов (слово - ассоциация)

хэш это таблица из двух столбцов (ключ - значение)




В ДАННОМ СЛУЧАЕ В JS это одно и то же! Всем привет!

nerv_ 26.01.2012 12:28

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

Livaanderiamarum 26.01.2012 12:37

Ну обьект я имею ввиду не как Класс, а как сама суть устройство!
Классы то ясен хрен наследуют))

То есть a в данном случае имеет дедушку Object/ Оператор доходит до Array? смотрит, не, не то, идет дальше, смотрит , да, во во, то! И выдает тру!

a => Array => Object

Livaanderiamarum 26.01.2012 12:43

Щас обьясню в чем разница в стиле моей книги)
ХЭШ это фигня которую придумали люди, абстракция)
это просто название)

хэшэм может работать все из двух столбцов , где правое значение в строчке логически соответствует левому! Даже долбанный массив обычный можно понимать как хэш.


В ДАННО СЛУЧАЕ это просто игра слов!
А то что люди говорят - это не то, это другое, это выевыемоны) можешь их даже не слушать и не напрягать мозг)

я обьяснил что это такое, нет в js ни хешей нет ни ассоц массивов) ни чего этого нет.

Дело в том что это все одно и то же, ПОТОМУ ЧТО РАБОТАЕТ ОДИНАКОГО ПРОСТО НАЗВАНИЯ РАЗНЫЕ, да и обьекты в js с этим тоже одно и то же отому что подходят под описание этих хешей, ассоц массивов и.т.п.)
вот.

Kolyaj 26.01.2012 14:42

Цитата:

Сообщение от FINoM
Эм, а как отличить объект от ассоциативного массива или хеша?

Как отличить кошку от кошки, а белку от белки? Объекты в JS это и есть хеши.


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