在实现以下生成函数(自定义二进制搜索(结束时,
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");
删除"警告"。