递归箭头函数中的 ESlint "no-unused-vars"



在实现以下生成函数(自定义二进制搜索(结束时,

const indexOf = (key) => (element, array, start, end) => {
start = start || 0;
end = end || array.length;
const pivot = parseInt(start + (end - start) / 2, 10);
if (array[pivot][key] === element[key]) return pivot;
if (end - start <= 1) {
return array[pivot][key] > element[key] ? pivot - 1 : pivot;
}
if (array[pivot][key] < element[key]) {
return indexOf(key)(element, array, pivot, end);
}
return indexOf(key)(element, array, start, pivot);
};

ESlint抛出警告"indexOf’被分配了一个值,但从未使用过任何未使用的变量";用于最后一个return语句。

由于它是一个递归函数,它将在下一次调用中读取(如果pivot元素大于当前元素(。

我怀疑:ESlint没有正确解析条件句的结构,因此抛出了错误。

我的理论正确吗?还是我遗漏了一点?

提前谢谢。

事实证明,以类似的方式使用生成函数

export const indexOfByStarted = indexOf("started");

删除"警告"。

最新更新