Javascript 在do while循环中重复调用函数

Javascript 在do while循环中重复调用函数,javascript,reactjs,typescript,binary-search,Javascript,Reactjs,Typescript,Binary Search,大家好, 因此,我正在学习打字脚本,并试图建立一个算法可视化为自己学习。我只是撞到了一个无法通过的街区。我目前的想法是,我可以将返回的数组分配给arr,它只会在do/while循环中调用自己,但是,我得到以下错误: 因此,我的下一个想法是,是否有一种方法可以解决这个问题,或者也许有一种方法可以调用函数binarySearch本身,也可以将相同的变量返回给handleOnClick github回购- const handleOnClick=()=>{ 设元素=2; 设arr=[0,1,2,3,

大家好,

因此,我正在学习打字脚本,并试图建立一个算法可视化为自己学习。我只是撞到了一个无法通过的街区。我目前的想法是,我可以将返回的数组分配给arr,它只会在do/while循环中调用自己,但是,我得到以下错误:

因此,我的下一个想法是,是否有一种方法可以解决这个问题,或者也许有一种方法可以调用函数binarySearch本身,也可以将相同的变量返回给handleOnClick

github回购-

const handleOnClick=()=>{
设元素=2;
设arr=[0,1,2,3,4,5,6]
做{
var[array,isDone,middosition]=二进制搜索(arr,element);
//给出[0,1,2]假4
arr=阵列;
日志(阵列、isDone、中间位置)
}while(isDone);
}
导出函数binarySearch(数组:number[],元素:number){
让start=0;
让end=array.length-1;
让中间=数学楼层((开始+结束)/2);
if(元素===数组[mid]){
mid=mid+1;
return[array.slice(start,end+1),true,mid]
}
if(元素<数组[mid]){
结束=中间-1;
返回[array.slice(start,end+1),false,mid+1];
}否则{
开始=中间+1;
返回[array.slice(start,end+1),false,mid+1];
}
}

您需要为
binarySearch()
指定元组返回类型,否则默认情况下,TypeScript会推断联合类型的数组
(number | boolean | number[])[]

function binarySearch (array: number[], element: number): [number[], boolean, number]
function binarySearch (array: number[], element: number): [number[], boolean, number]