ESLint给出link = link.split("?")[0]
的错误。它说要使用数组解构。但是如果我使用数组解构,那么代码将是
let [ temp ] = link.split("?");
link = temp;
这导致使用额外的变量。还有另一种方法可以执行此操作,而无需创建额外的变量并避免ESLint错误。谢谢。
答案 0 :(得分:3)
但是如果我使用数组解构,那么代码将是...
您可以将其分解为现有变量,而不必声明新变量。因此,它将是:
[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("?")
答案 1 :(得分:1)
您可以这样做
借助数组解构。
ticket
答案 2 :(得分:0)
使用JavaScript
shift()方法从数组中删除第一个元素,并返回该删除的元素。此方法更改数组的长度。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
答案 3 :(得分:0)
[link] = link.split("?");
T.J。的答案就是您要寻找的东西
但是突变变量并不是编写代码的最佳方法。另一方面,破坏只是编写代码的一种干净方法。如果看到销毁部分的转码,您会发现正在设置一个新变量。
附带说明,eslint不能强迫您做任何事情,如果您担心表现,可以允许link = link.split("?")[0]
站起来,
请在prefer-destructuring
内禁用您的.eslintrc.json
配置,
{
"rules": {
"prefer-destructuring": ["error", {"object": false, "array": false}]
}
}