【发布时间】:2020-09-23 23:20:05
【问题描述】:
大家好,
所以我正在学习 TypeScript 并尝试构建一个算法可视化器供自己学习。我刚刚碰到了一个我无法通过的障碍。我目前的想法是我可以将返回的数组分配给 arr 并且它只会在 do/while 循环中调用自己,但是,我收到以下错误:
所以我的下一个想法是是否有办法解决这个问题,或者我可以自己调用函数 binarySearch 并且还能够将相同的变量返回给 handleOnClick。
github 仓库 - link
const handleOnClick = () => {
let element = 2;
let arr = [0, 1, 2, 3, 4, 5, 6]
do {
var [array, isDone, midPosition] = binarySearch(arr, element);
// gives [0, 1, 2] false 4
arr = array;
console.log(array, isDone, midPosition)
} while (isDone);
}
export function binarySearch (array: number[], element: number) {
let start = 0;
let end = array.length - 1;
let mid = Math.floor((start + end) /2);
if (element === array[mid]) {
mid = mid + 1;
return [array.slice(start, end+1), true, mid]
}
if (element < array[mid]) {
end = mid - 1;
return [array.slice(start, end+1), false, mid+1];
} else {
start = mid + 1;
return [array.slice(start, end+1), false, mid+1];
}
}
【问题讨论】:
标签: javascript reactjs typescript binary-search