Javascript将输入值排序到数组中

时间:2017-01-22 17:34:23

标签: javascript

我有以下代码,它使用howmanyproducts类查看隐藏的输入。

$("#proddiv .howmanyproducts").each(function() {
    var idval = $(this.id).val();
});

我想要实现的是每个id获取值并根据其值将id排序到数组中。

2 个答案:

答案 0 :(得分:0)

var arrayOfValues = [];

$("#proddiv .howmanyproducts").each(function() {
    arrayOfValues.push($(this).val());
}

答案 1 :(得分:0)

您必须将ID和相应的值都添加到数组中,然后使用适合的比较函数使用数组的sort方法。假设您的值是数字但是以字符串形式检索:

    // Create a new empty array :
    var ids = [];
    $("#proddiv .howmanyproducts").each(function() {
        var id = this.id;
        var val = $(this.id).val();
        // Store the id and the value:
        ids.push([id, +val]);
    });
    // Sort the array in place, using the second element of each item
    // ie. the value :
    ids.sort(function(a, b) { return a[1] - b[1]; });
    // Once sorted, make a new array with only the ids:
    var result = ids.map(function(a,b) { return a[0] });

我使用了传统的语法,但请注意,使用箭头函数可以更简单地编写它:

ids.sort((a,b) => a[1] - b[1]);
var result = ids.map((a,b) => a[0]);