ESLint给link = link.split("?")[0]
一个错误。它说要使用数组解构。但如果我使用数组解构,那么代码将是
let [ temp ] = link.split("?");
link = temp;
这导致使用额外变量。是否有另一种方法可以在不创建额外变量和避免ESLint错误的情况下执行此操作。谢谢。
但如果我使用数组解构,那么代码将是......
您可以将结构化为现有变量,而不必声明新变量。相反,它将是:
[link] = link.split("?");
实例:
let link = "testing?one?two";
[link] = link.split("?");
console.log(link);
有时(例如,使用对象解构时),您需要使用括号来避免解析混淆:
let link;
let obj = {
link: "example"
};
({link} = obj);
console.log(link);
其他时候,如果你喜欢依赖自动分号插入而不是在需要它们的地方输入分号,那么在没有声明的情况下进行数组解构时你需要;
。这是一个错误:
// Hazard if relying on ASI
let link = "testing?one?two?"
console.log("hi there")
[link] = link.split("?")
console.log(link)
通常,在这种情况下,无分号的人使用领先的;
,例如:
;[link] = link.split("?")
你可以这样做
在阵列解构的帮助下。
let link = "hello?hahah";
[link] = link.split('?');
console.log(link);
使用.shift()
shift()方法从数组中删除第一个元素并返回已删除的元素。此方法更改数组的长度。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
[link] = link.split("?");
T.J.的答案就是你要找的东西,
但变异变量不是编写代码的最佳方式。另一方面,破坏只是编写代码的一种简洁方式。如果你看到破坏部分的转换代码,你会发现正在设置一个新变量。
在旁注,eslint不能强迫你做任何事情,如果你关心性能你可以让link = link.split("?")[0]
站立,
请在你的prefer-destructuring
中禁用你的.eslintrc.json
配置,
{
"rules": {
"prefer-destructuring": ["error", {"object": false, "array": false}]
}
}