【发布时间】:2016-08-22 15:51:16
【问题描述】:
由于某种原因,我无法正确排序此代码。我正在替换乱序号以制作有序列表。
var unsortedArray = new Array(1,2,5,4);
var sortedArray = unsortedArray;
var tempValue = 0;
function isSorted(array)
{
for (i = 0; i < array.length; i++)
{
if (array[i] > array[i+1])
{
return false;
}
}
return true;
}
function sort(array)
{
while (isSorted(array) == false)
{
for (i = 0; i < length; i++)
{
var tempValue = array[i];
array[i] = array[i+1];
array[i+1] = tempValue;
}
}
}
sort(sortedArray);
document.write(sortedArray);
这里的while循环应该在数组排序后停止,但这永远不会发生。
【问题讨论】:
-
假设:数组未按预期排序。
-
for (i = 0; i < length; i++)你在哪里得到length,我没有看到它在任何地方定义,所以你应该排序的for循环不会运行,或者将使用全局length属性并将使用它数字而不是你想要的任何东西 -
您的排序不是比较元素以查看它们是否需要交换。无论他们是否需要,它总是交换它们。所以数组永远不会进入排序状态。
标签: javascript while-loop infinite