Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按顺序填充下拉列表_Javascript_Jquery_Html - Fatal编程技术网

Javascript 按顺序填充下拉列表

Javascript 按顺序填充下拉列表,javascript,jquery,html,Javascript,Jquery,Html,我试图以特定的顺序(字母顺序/字母数字顺序)填充下拉列表,但我的代码似乎不起作用。它正在填充值,但不按顺序填充 这是我的密码 function dropdown(){ var html = html + "<option value='All'>All</option>"; var colValue = getColumn("COLUMN"); for( var i = 0; i < colValue.length; i++ ) {

我试图以特定的顺序(字母顺序/字母数字顺序)填充下拉列表,但我的代码似乎不起作用。它正在填充值,但不按顺序填充

这是我的密码

function dropdown(){
    var html = html + "<option value='All'>All</option>";
    var colValue = getColumn("COLUMN");
    for( var i = 0; i < colValue.length; i++ ) {
        var valueRow = colValue[i];
        html = html + "<option value='" + valueRow.c + "'>" + valueRow.c + "-" + valueRow.v + "</option>";
    }
    $('#id').append(html);    

}
而且它的数量也完全一样

我的问题是,我需要做什么,来按顺序填充我的下拉列表? 我还在java脚本和Jquery的初级阶段。谢谢你的帮助

谢谢你可以试试这个:

function dropdown(){
    var html = html + "<option value='All'>All</option>";
    var colValue = getColumn("COLUMN");
    colValue.sort();
    for( var i = 0; i < colValue.length; i++ ) {
        var valueRow = colValue[i];
        html = html + "<option value='" + valueRow.c + "'>" + valueRow.c + "-" + valueRow.v + "</option>";
    }
    $('#id').append(html);    

}
函数下拉列表(){
var html=html+“全部”;
var colValue=getColumn(“COLUMN”);
colValue.sort();
对于(var i=0;i
根据您所说的,colValue看起来是这样的:

colValue = [
  { c="A3", v="a3Value" },
  { c="A1", v="a2Value" } // etc.
]
colValue.sort(createComparator("c"));
因此,您需要决定排序的属性,然后可以创建一个比较器:

function createComparator(property) {
    return function(a, b) {
        return a[property] > b[property];
    };
}
您可以这样使用它:

colValue = [
  { c="A3", v="a3Value" },
  { c="A1", v="a2Value" } // etc.
]
colValue.sort(createComparator("c"));

基于此,请回答:

因为
valueRow
是一个对象而不是一个数组,并且您想要在
valueRow.v
上排序,您需要的不仅仅是
array.sort()

看看lodash的
sortBy


\uu.sortBy(valueRow,'c')

如果您创建一个显示问题的JSFIDLE,它会更容易提供帮助:)下面是链接:@David-我刚刚修复了排序函数中的一个逻辑错误。-这真的很有帮助。谢谢