07.04.2020, 17:40
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,744
|
|
Сообщение от jaroslav.tavgen
|
Или вообще отрицательные индексы как в Питоне. В splice они есть, а в обычной индексации массива - нет.
|
В javascript вообще нет такого понятия, как индекс массива. Есть свойства объекта. Они задаются строками (ну еще Symbol).
|
|
07.04.2020, 17:48
|
|
Профессор
|
|
Регистрация: 16.09.2009
Сообщений: 253
|
|
Eсли бы стандартом стал бы vb-script, я бы до сих пор сидел бы в Си и мне начхать было на тот же HTML5 с его WebGL…
|
|
07.04.2020, 17:53
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от voraa
|
В javascript вообще нет такого понятия, как индекс массива
|
Это почему? Нет ассоциативных массивов, это да, но массивы в JS имеют индексы.
|
|
07.04.2020, 18:07
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,744
|
|
Сообщение от laimas
|
Это почему? Нет ассоциативных массивов, это да, но массивы в JS имеют индексы.
|
Какие индексы?
Массивы - это прежде всего объекты. Ну с некоторыми дополнительными прибамбасами (экзотические объекты). Но объекты.
Индексы - это строки. Все числовые индексы преобразуются в строки и обрабатываются, как обычные свойства объекта.
let a=[1,2,3]
console.log (a[2]); // 3
console.log (a['2']); // 3
console.log (a['02']); // undefined '2' !== '02'
a['1.5'] = 15
console.log (a[1.5]) // 15
a[-1] = -1
console.log (a[-1]) // -1
console.log (a['-1']) // -1
Последний раз редактировалось voraa, 07.04.2020 в 18:21.
|
|
07.04.2020, 18:30
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,744
|
|
Сообщение от laimas
|
Нет ассоциативных массивов, это да,
|
А что в Вашем понимании ассоциативный массив?
Чем обычный объект не ассоциативный массив?
Только, что length нет. Да не особо и нужен.
Весь "ассоциативный массив" обработать можно через for in.
Последний раз редактировалось voraa, 07.04.2020 в 18:34.
|
|
07.04.2020, 19:03
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от voraa
|
Какие индексы?
|
Массивы в JavaScript индексируются с нуля: первый элемент массива имеет индекс, равный 0, а индекс последнего элемента равен значению свойства массива length минус 1.
Это из одного из талмутов, другого суждения я ни где не встречал. А крутить и вертеть словами можно как угодно, о тех же "ассоциативных", сравнивая их с понятиями "свойства".
|
|
07.04.2020, 19:25
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,744
|
|
Сообщение от laimas
|
[i]А крутить и вертеть словами можно как угодно, о тех же "ассоциативных", сравнивая их с понятиями "свойства".
|
Это не слова. Это работающие операторы javascript.
let a=[];
a['1.5'] = 15
console.log (a[1.5]); // 15
a[-1] = -1
console.log (a[-1]); // -1
console.log (a['-1']); // -1
Единственная экзотичность объекта Array связана с обработкой свойства length.
В остальном это обычный объект, где даже целочисленные свойства представлены строками.
Последний раз редактировалось voraa, 07.04.2020 в 19:46.
|
|
07.04.2020, 19:58
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
И к чему это все? Что значит обращение к элементу массива array[3], это по его индексу или есть иной термин, о котором знаете только вы?
Можно мусолить о различиях столько, что на диссертацию хватит, но есть понятие индекс, все остальное это уже словоблудие. Ибо если сравнивать тот же РНР с JS, в первом ассоциативный массив имеет ключи и никто, и ни когда не назовет их свойствами. В отличие от JS в РНР можно всегда получить третий символ строки как string[2] так как во внутреннем представлении в РНР строка это массив, а в JS нет. Но сколь лясы не точи, что в РНР, что в JS, это строковый тип данных. Вот так и с индексами, определят иное понятие этого тогда другое дело.
|
|
07.04.2020, 20:04
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,744
|
|
Сообщение от laimas
|
В отличие от JS в РНР можно всегда получить третий символ строки как string[2]
|
Вы, наверно, чего то не знаете
console.log('string'[2]); // r
|
|
07.04.2020, 20:06
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,744
|
|
Сообщение от laimas
|
И к чему это все? Что значит обращение к элементу массива array[3],
|
Это взять свойство объекта array с именем '3'
|
|
|
|