首页 > 解决方案 > 解构数组时如何忽略项目?

问题描述

我自己回答这个问题,因为我没有遇到讨论在搜索时忽略解构数组元素的问题或答案。

有没有办法在解构时忽略数组的元素?我能想到的最接近的事情是在 Go 中如何使用_符号来删除参数。

我正在使用 ESLint,我希望能够避免未使用的变量警告,而不必显式关闭警告。我也不喜欢范围泄漏,即使它相当小。

例如:

const arr = [
  ["foo", "bar"],
  ["fizz", "buzz"],
  ["hello", "world"]
];

// I don't actually want 'a' to be available in the scope
arr.forEach(([a, b]) => console.log(`a: ${a} | b: ${b}`));

// _ is still defined and equates to 'a' above
arr.forEach(([_, b]) => console.log(`'a': ${_} | b: ${b}`));

标签: javascriptarraysdestructuring

解决方案


您可以通过简单地不为要分配的值提供变量来忽略一个元素,而只是将逗号放在您的位置上。请参阅MDN:解构赋值#忽略一些返回值

例如:

const arr = [
  ["foo", "bar"],
  ["fizz", "buzz"],
  ["hello", "world"]
];

// Just use ','
arr.forEach(([, b]) => {
  // No variable is populated with the first element
  console.log(typeof(a));
  console.log(typeof(b));
  console.log(`b: ${b}`);
});


推荐阅读