反转动态数组

时间:2014-05-16 00:09:53

标签: javascript arrays

我有按钮'像这样

<span data-id="dr21" data-minheight="100" data-maxheight="200" data-minwidth="20" data-maxwidth="50"  class="customsizebutton">(edit size)/span>

和像这样的脚本

<script>
$('.customsizebutton').click(function ()
{
var id = $(this).data('id');    
var minHeight = $(this).data('minheight');
var maxHeight = $(this).data('maxheight');
var minWidth = $(this).data('minwidth');
var maxWidth = $(this).data('maxwidth');
var arrayH = [];
var arrayW = [];
for (var i = minHeight; i <= maxHeight-1; i++) {
arrayH.push(i);
}
for (var i = minWidth; i <= maxWidth-1; i++) {
arrayW.push(i);
}

var selectListH = document.getElementById("h-"+id);
for (var i = 0; i < arrayH.length; i++) {
var option = document.createElement("option");
 option.text = arrayH[i];
selectListH.appendChild(option);
}

var selectListW = document.getElementById("w-"+id);

for (var i = 0; i < arrayW.length; i++) {
var option = document.createElement("option");
 option.text = arrayW[i];
selectListW.appendChild(option);
}})
</script>

我试图用

填写两个下拉列表
<option>200</option>
<option>199</option>...    
<option>101</option>
<option>100</option>

<option>50</option>
<option>49</option>...    
<option>21</option>
<option>20</option>

它目前填充相反方向的下拉菜单(从低到高)。我对此很陌生,试错法让我走得很远。

由于

2 个答案:

答案 0 :(得分:2)

只需按相反的顺序填充数组。

for (var i = maxHeight-1; i >= minHeight; i--) {
arrayH.push(i);
}
for (var i = maxWidth-1; i >= minWidth; i--) {
arrayW.push(i);
}

答案 1 :(得分:1)

如果您只需要以相反的顺序填充下拉列表,则可以反向迭代它们,如下所示:

for (var i = arrayH.length - 1; i >= 0; i--) {
var option = document.createElement("option");
 option.text = arrayH[i];
selectListH.appendChild(option);
}

如果你想实际反转数组中的项目,正如问题的标题所表示的那样,使用Array.reverse函数更容易:

arrayH = arrayH.reverse();

如果您是新用户,我建议您查看JavaScript documentation over at Mozilla