Деструктуризация массива с пропуском значений

Мой руководство по стилю airbnb сказал мне, что я должен использовать деструктурирование массива для задания ниже.

const splittedArr  = [1, 2, 3, 4, 5]
const result = splittedArr[1];

Поэтому я написал это так, пропуская значения ,, чтобы получить второй элемент.

const splittedArr  = [1, 2, 3, 4, 5]
const [, result] = splittedArr;

const splittedArr = [1, 2, 3, 4, 5]
const result = splittedArr[1];

const [, res] = splittedArr;

console.log(result, res);

Но, например, когда у меня есть более высокий индекс для уничтожения

const splittedArr  = [1, 2, 3, 4, 5]
const result = splittedArr[5];

Это означало бы, что я должен написать это как

const splittedArr  = [1, 2, 3, 4, 5]
const [,,,, result] = splittedArr;

const splittedArr  = [1, 2, 3, 4, 5]

const result = splittedArr[4];

const [, , , , res] = splittedArr;

console.log(result, res);

Вопрос. Есть ли лучший способ написать Деструктурирование массива с пропуском значений в JavaScript?


person Aalexander    schedule 30.01.2021    source источник
comment
Это рекомендация, а не фиксированное правило. Взгляните на проблемы для этой части руководства (например, Зачем использовать предпочтение-деструктурирование для массивов? #1791)   -  person Andreas    schedule 30.01.2021
comment
Пожалуйста, руководствуйтесь здравым смыслом. Гораздо уродливее делать [,,,,,myvar] = ar, чем const myvar = ar[5], и любое руководство по стилю, которое говорит вам иначе, неверно.   -  person 404    schedule 30.01.2021
comment
Отвечает ли это на ваш вопрос? Решение по деструктуризации объектов для длинных массивов?   -  person Nguyễn Văn Phong    schedule 31.01.2021
comment
Мой вопрос касается деструктуризации массива, а не деструктуризации объекта, как вы можете видеть в моем заголовке и заголовке вашего заданного вопроса.   -  person Aalexander    schedule 31.01.2021


Ответы (2)


Вы можете рассматривать массив как объект и деструктурировать его с помощью индекса как ключа и назначить новое имя переменной.

const
    array = [37, 38, 39, 40, 41, 42, 43],
    { 5: result } = array;

console.log(result);

person Nina Scholz    schedule 30.01.2021

Вместо этого используйте object-destructuring:

const splittedArr  = [1, 2, 3, 4, 5];

const { 1: second, 4: fifth } = splittedArr;

console.log(second, fifth);

person Majed Badawi    schedule 30.01.2021