Обращение к ключу массива через квадратные скобки

282
15 июля 2021, 17:30

Помогите разобраться почему такой код выдает true

[0,2,5][2,1] == 2

Я понял что при обращению к элементу массива он учитывает только последнюю цифру , все что до запятой он не учитывает. Но почему так можно писать и для чего вообще могут быть нужны такие записи?

Answer 1

В данном случае используется оператор запятая. Согласно документации MDN, выполняет каждый операнд слева направо и возвращает значение последнего операнда.

Зачем использовать? Имхо, в принципе от него нет особенной какой-то пользы за исключением случаев, когда хочется выделиться элегантностью записи многих операций в одну строку (что, как следствие приводит к ухудшению читаемости кода), хотя в принципе это дело вкуса.

Куча примеров есть на хабре.

Answer 2

Потому что это оператор запятая:

var x = (1, 2) 
console.log(x) 
 
console.log((3, 4)) 
 
console.log(1, (2, 3), 4) 
 
console.log([0, 1, 2, 3][(1,2)]) 
console.log([0, 1, 2, 3][ 1,2 ]) 
 
if (false, true) console.log(10), console.log(20); else ;

READ ALSO
Бесконечная анимация движения canvas

Бесконечная анимация движения canvas

Нужно, чтобы астероид пролетал за границы экрана и потом снова вылетал с другой стороныИ так по-кругу

111
React. Компоненты

React. Компоненты

Изучая react наткнулся на интересную с моей точки зрения конструкцию в react-bootstrap:

117
Как установить обработчик событий на select?

Как установить обработчик событий на select?

Надо сделать чтобы при клике на один из option, в input вставлялся optioninnerHTML

99
Анимация линии кнопок

Анимация линии кнопок

Мне нужно сделать анимационные линии при наведении на кнопку, от середины нижней линииЛиния должна идти в разные стороны и менять цвет

100