Javascript 使用array.length时出现未定义的错误
我正在用JavaScript实现气泡排序方法,下面是我当前的代码:Javascript 使用array.length时出现未定义的错误,javascript,Javascript,我正在用JavaScript实现气泡排序方法,下面是我当前的代码: // Sort array (ascending) function sort(array) { var sortedArray = array; // This swapped 'flag' tells the function whether or not it will // need to iterate over the array again to continue sorting var s
// Sort array (ascending)
function sort(array) {
var sortedArray = array;
// This swapped 'flag' tells the function whether or not it will
// need to iterate over the array again to continue sorting
var swapped = false;
for( var i = 1; i < array.length; i++ ) {
var prev = array[i - 1];
var current = array[i];
// If the previous number is > than the current, swap them around
if( prev > current ) {
swapped = true;
sortedArray[i] = prev;
sortedArray[i - 1] = current;
}
}
// If there has been a swap, sort over the array again
if( swapped ) {
return sort();
}
return sortedArray;
}
var testArray = [1, 4, 27, 3, 2];
// Run the sort function
sort(testArray); // [1, 2, 3, 4, 27]
//排序数组(升序)
函数排序(数组){
var-Darray=阵列;
//这个交换的“标志”告诉函数它是否会
//需要再次迭代数组以继续排序
var交换=错误;
对于(变量i=1;i当前){
交换=真;
SorterDarray[i]=上一个;
SorterDarray[i-1]=电流;
}
}
//如果进行了交换,请再次对数组进行排序
如果(交换){
返回排序();
}
返回至Darray;
}
var testArray=[1,4,27,3,2];
//运行sort函数
排序(testArray);//[1, 2, 3, 4, 27]
当我运行此程序时,我不断得到“无法读取属性。未定义的长度”
但是,我可以在for循环之前console.log(array.length)并返回一个值
这是我的一段代码
为什么我会得到一个“未定义的”
// If there has been a swap, sort over the array again
if( swapped ) {
return sort();
}
您正在返回sort(),这里没有参数。根据我的评论:您需要再次将
数组传递给sort函数:
if (swapped) {
return sort(array);
}
返回排序(数组)
不是返回排序()!我想在尝试其他事情之前,我需要周一早上的咖啡。再次感谢!