optionElements是一个二维数组。每个元素都有一个长度为2的数组,其中包含一个整数和一个元素。我有一个选择列表称为linkbox,并且我想将所有元素添加到选择列表中。我希望它们按照它们各自的整数值从小到大排序。所以可以这样理解:
optionElements如下:
[ [5, <option>], [3, <option], [4, <option], [1, <option], [2, <option]]
它会按照这些数字的顺序将它们添加到链接框中。但事实并非如此。第一次后会进入无限循环。我添加了x约束只是为了防止它冻结我的浏览器,但您可以忽略它。
var b;
var smallest;
var samllestIndex;
var x = 0;
while(optionElements.length > 0 && ++x < 100)
{
smallestIndex = 0;
smallest = optionElements[0][0];
b = 0;
while( ++b < optionElements.length)
{
if(optionElements[b][0] > smallest)
{
smallestIndex = b;
smallest = optionElements[b][0];
}
}
linkbox.appendChild(optionElements[smallestIndex][1]);
optionElements.unshift(optionElements[smallestIndex]);
}
有人能指出我的问题在哪里吗?
更新
忘记在while循环中添加>符号是错误的,但不是问题的原因。
splice()
函数?http://www.w3schools.com/jsref/jsref_splice.asp - Hasturkun