Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.03.2015, 22:26
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Массивы и строковые индексы
Подскажите, пожалуйста, не нашел нигде про такой момент информацию:
в массив можно добавлять свойства, как в объекты, например,
var test = [2, 10, 11];

test.myProp = 'hello';
test.['myProp2'] = 'world';


Тут все понятно. А если я присвою строковый индекс, но он будет числовой строкой, то интерпретатор воспримет его, как индекс массива или сделает свойством, как в объектах?:
test['10'] = 'test';

То есть, когда мы добавляем свойства, как в примере свойства 'myProp' и 'myProp2', то они становятся именно свойствами, не влияя на значение length массива, а что касательно случая со свойством test['10'], станет ли оно индексом массива или свойством, как в объектах и не повлияет на length?
Методом пробы test['10'] работает, как индекс массива и влияет на length, но хотелось бы быть уверенным, может где-то об этом говорится в доках, а то не хочется юзать не зная, что делаешь и что происходит. Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 07.03.2015, 01:39
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Вот тут про это написано: http://learn.javascript.ru/array#в...массива
Ответить с цитированием
  #3 (permalink)  
Старый 07.03.2015, 02:37
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Сообщение от Decode Посмотреть сообщение
Вот тут про это написано: http://learn.javascript.ru/array#в...массива
не, в том-то и дело, что не написано.
Ответить с цитированием
  #4 (permalink)  
Старый 09.03.2015, 14:30
Аспирант
Отправить личное сообщение для 2chan Посмотреть профиль Найти все сообщения от 2chan
 
Регистрация: 11.07.2014
Сообщений: 69

Так сложно самому попробовать?
var a = []; /* создаём массив */
a[0] = 'Ноль как число',  // Ключ 0, число. 
a['0'] = 'Ноль как строка'; // Ключ "0", строка.
console.log(a[0], a['0']); // (Firefox) => "Ноль как строка" "Ноль как строка", значение a[0] перезаписалось

Не знаю приводятся числа к строкам, или строки к числам, но разницы между a[10] и a['10'] - нет.
Ответить с цитированием
  #5 (permalink)  
Старый 09.03.2015, 14:52
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
А если я присвою строковый индекс, но он будет числовой строкой, то интерпретатор воспримет его, как индекс массива или сделает свойством, как в объектах?
Это одно и то же.
Цитата:
не повлияет на length?
На length ничто не влияет. length равно последнему числовому индексу + 1
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SOS!!! Массивы Herois Общие вопросы Javascript 8 02.02.2015 14:38
Массивы PHP + JS. Artsemi Общие вопросы Javascript 2 09.08.2012 13:03
Какие массивы бывают в Жабе thunder2 Общие вопросы Javascript 2 26.10.2011 23:28
чётные индексы pernik Общие вопросы Javascript 1 18.08.2011 14:03
Json и вложенные массивы ArmagedDance jQuery 6 08.06.2011 12:42