Javascript.RU

Создать новую тему Закрытая тема
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2011, 11:32
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

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

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

var a = [1,2,3,4,5];
var b = {'var1':1, 'var2':2}
  #2 (permalink)  
Старый 24.09.2011, 11:43
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Для начала прочитать это: http://alljs.ru/articles/array/whatis
  #3 (permalink)  
Старый 24.09.2011, 12:49
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 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 ) ]);
  #4 (permalink)  
Старый 25.01.2012, 22:47
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Andrei Посмотреть сообщение
Подскажите как отличить обычный массив от ассоциативного ?
в JS нет ассоциативных массивов. То, что вы считаете за оное, является объектом. А точнее, хешем.
  #5 (permalink)  
Старый 26.01.2012, 04:40
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от melky
в JS нет ассоциативных массивов
Эм, а как отличить объект от ассоциативного массива или хеша? Мне вот крайне трудно догнать эту разницу в том же php (за исключением, что объект создается конструктором).
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
  #6 (permalink)  
Старый 26.01.2012, 05:26
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

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

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

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




В ДАННОМ СЛУЧАЕ В JS это одно и то же! Всем привет!
  #7 (permalink)  
Старый 26.01.2012, 12:28
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 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
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
  #8 (permalink)  
Старый 26.01.2012, 12:37
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

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

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

a => Array => Object

Последний раз редактировалось Livaanderiamarum, 26.01.2012 в 12:47.
  #9 (permalink)  
Старый 26.01.2012, 12:43
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

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

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


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

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

Дело в том что это все одно и то же, ПОТОМУ ЧТО РАБОТАЕТ ОДИНАКОГО ПРОСТО НАЗВАНИЯ РАЗНЫЕ, да и обьекты в js с этим тоже одно и то же отому что подходят под описание этих хешей, ассоц массивов и.т.п.)
вот.
  #10 (permalink)  
Старый 26.01.2012, 14:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от FINoM
Эм, а как отличить объект от ассоциативного массива или хеша?
Как отличить кошку от кошки, а белку от белки? Объекты в JS это и есть хеши.
Закрытая тема


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как при переборе массива к выбранным элементам присвоить тип - число Rich Общие вопросы Javascript 1 27.03.2011 13:09
Определить присутствует ли скролл на iframe sergiyko Общие вопросы Javascript 3 14.03.2011 23:15
splice массива массивов vahrusha Общие вопросы Javascript 9 27.07.2010 15:41
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01