解构数组时如何忽略项目?

时间:2018-08-20 18:30:40

标签: javascript arrays destructuring

我正在自我回答,因为我没有遇到讨论在搜索时忽略变形数组元素的问题。

解构时是否有忽略数组元素的方法?我能想到的最接近的东西是在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}`));

1 个答案:

答案 0 :(得分:3)

您可以忽略元素,只需不为要分配的值提供变量,而只需像使用逗号一样放置逗号即可。参见MDN: Destructuring assignment#Ignoring some returned values

例如:

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}`);
});