猿问

归并排序问题,lenth为什么undefined

这是我照着书上敲的归并排序,可是控制台输出merg函数while判断中的length为undefined
functionsplitMergeSort(arr){
varlen=arr.length;
while(len==1){
returnarr;
}
varmid=Math.floor(len/2);
varleft=arr.slice(0,mid),
right=arr.slice(mid,len);
returnsplitMergeSort(merge(left),merge(right))
}
//合并函数
functionmerge(arr1,arr2){
varresult=[];
varl=0;
varr=0;
while(lif(arr1[l]result.push(arr1[l++])
}else{
result.push(arr2[r++])
}
}
while(lresult.push(arr1[l++])
}
while(rresult.push(arr2[r++])
}
}
慕尼黑8549860
浏览 445回答 2
2回答

万千封印

javascript是区分大小的你这里面的语法关键字都写错了是length不是Length是while不是whiLe是floor不是fLoor是slice不是sLice你确定你是照着书上敲的?这不是误人子弟吗

慕田峪4524236

你merge(left)merge(right)传递的都是一个参数,你merge函数却又arr1,arr2两个参数,所以arr2.length当然是undefined而且函数也没有return并不知道是在哪本书上敲的functionsplitMergeSort(arr){varlen=arr.length;while(len==1){returnarr;}varmid=Math.floor(len/2);varleft=arr.slice(0,mid),right=arr.slice(mid,len);returnmerge(splitMergeSort(left),splitMergeSort(right))}//合并函数functionmerge(arr1,arr2){varresult=[];varl=0;varr=0;while(l
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答