gpt4 book ai didi

javascript - ESLint 说数组从未被修改,即使元素被插入数组

转载 作者:可可西里 更新时间:2023-11-01 01:59:05 26 4
gpt4 key购买 nike

我正在转换一些现有代码以遵循 ECMA 脚本,并且我正在使用 ESLint 来遵循编码标准。我有以下 ecmascript 方法

static getArrayOfIndices(text, char) {
let resultArray = [];
let index = text.indexOf(char);
const lastIndex = text.lastIndexOf(char);
while (index <= lastIndex && index !== -1) {
resultArray.push(index);
if (index < lastIndex) {
index = text.substr(index + 1).indexOf(char) + index + 1;
} else {
index = lastIndex + 1999; // some random addition to fail test condition on next iteration
}
}
return resultArray;
}

对于resultArray的声明,ESLint会抛出错误

ESLint: `resultArray` is never modified, use `const`instead. (prefer-const)

但是既然元素被压入数组,那不就是被修改了吗?

最佳答案

要理解此错误,您必须了解 const 声明的变量持有对值的只读引用。但并不代表它持有的值(value)是不可变的[mdn article] .

由于您只是更改变量的成员,而不是对绑定(bind)执行重新分配,因此 es-lint 的 prefer-const 规则会警告您声明了 const可以使用变量代替 let 声明的变量。

关于javascript - ESLint 说数组从未被修改,即使元素被插入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34784588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com