如何使用destruct获取数组?
const num = [1,2,3,4,5];
const [ first ] = num; //1
Run Code Online (Sandbox Code Playgroud)
console.log(first)我能够得到1,但是当我尝试做到const [ null, second ] = num这一点时,预计会出现令牌错误.如何获得num数组的第二项?
我有一行代码,如下所示:
const [full, text, url] = markdownLink.exec(match) || [null, null, '']
Run Code Online (Sandbox Code Playgroud)
但是我没有使用full,并且 linter 给了我一个警告。
第 28 行:“full”被赋值但从未使用过
我想像这样声明元组,但我不需要full。有没有一种语法方法可以通过跳过完整来解决这个问题?
看看这段代码:
let lecture = {
id: 2,
title: "MyTitle",
topics: [
{
title: "John",
age: 1
},
{
title: "John2",
age: 2
},
{
title: "John3",
age: 3
}]
}
Run Code Online (Sandbox Code Playgroud)
我想提取主要title属性和age数组中的第三个(通过对象解构)
let { title:lectureTitle , topics:[,,{age:thirdAge}]} = lecture;
console.log(lectureTitle,thirdAge);//MyTitle 3
Run Code Online (Sandbox Code Playgroud)
题
但是,如果阵列有100个项目而我想要99' age呢?
那怎么办呢?对象解构是否为此提供了解决方案?
我正在自我回答这个问题,因为我没有遇到讨论在搜索时忽略解构数组元素的问题或答案。
有没有办法在解构时忽略数组的元素?我能想到的最接近的事情是在 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}`));Run Code Online (Sandbox Code Playgroud)
每当我使用useState或具有相同结构的类似函数时,如果我只需要使用数组函数,我就会收到 lint 错误,例如:
const [searchParams, setSearchParams] = useSearchParams();
Run Code Online (Sandbox Code Playgroud)
如果我只需要使用setSearchParams,而不需要使用searchParams,lint 会显示一个错误,指出第一个从未使用过。
替换searchParams为 null 或 undefined 会引发其他错误。有没有办法在语法中解决这个问题?(不改变 lint 配置)
javascript ×4
ecmascript-6 ×2
eslint ×2
arrays ×1
reactjs ×1
tslint ×1
tuples ×1
typescript ×1