Возможна ли деструктура в JavaScript через скобки? - PullRequest
0 голосов
/ 21 февраля 2019

Это не обязательно проблема, скорее любопытство, которое возникло из-за ошибки ESLint, что заставило меня задуматься, есть ли лучший способ просто отключить ESLint для этой строки.

Рассмотрите фрагмент кода ниже.ESLint выдаст ошибку, если правило реагировать / деструктуризировать назначение включено, предпочитая

const { arrayToPrint } = myArrays вместо const arrayToPrint = myArrays[arrayName]

У меня вопрос, и у меня нетЯ не смог найти какую-либо ссылку на это, так что я догадываюсь, нет, есть ли способ переместить [arrayName] в левую часть назначения для деструктурирования без ссылки на фактическое свойство объекта?

const myArrays = {
  arrayOne: ['one'],
  arrayTwo: ['two'],
  arrayThree: ['three'],
}

const arrayPrinter = function arrayPrinter(arrayName) {
	const arrayToPrint = myArrays[arrayName]
  
  return arrayToPrint
}

console.log(arrayPrinter('arrayTwo'))

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Простой способ сделать это - использовать Object.entries(myArrays).

/* example: expected output of console.log(Object.entries(myArrays)[1]) is ["arrayTwo": Array ["two"]]
0 голосов
/ 21 февраля 2019

Разрушение может быть выполнено с помощью вычисляемого свойства :

const { [arrayName]: arrayToPrint } = myArrays;
...