根据对象中的值对一组对象进行排序

这个问题在这里已经有了答案:

  • 通过JavaScript中的字符串属性值排序对象数组33个答案

  • 由于您的值只是数字,因此您可以从比较器功能返回它们的差异

    winners_tie.sort(function(first, second) {
        return first.value - second.value;
    });
    
    console.log(winners_tie);
    

    产量

    [ { name: 'A', value: 111 },
      { name: 'C', value: 222 },
      { name: 'B', value: 333 } ]
    

    注意: JavaScript的排序不保证稳定。


    试试这个:

    function compare(a,b) {
      if (a.value < b.value)
         return -1;
      if (a.value > b.value)
        return 1;
      return 0;
    }
    
    winners_tie.sort(compare);
    

    演示Js小提琴


    对于数组:

    function sort_array(arr,row,direc) {
        var output = [];
        var min = 0;
    
        while(arr.length > 1) {
            min = arr[0];
            arr.forEach(function (entry) {
                if(direc == "ASC") {
                    if(entry[row] < min[row]) {
                        min = entry;
                    }
                } else if(direc == "DESC") {
                    if(entry[row] > min[row]) {
                        min = entry;
                    }
                }
            })
            output.push(min);
            arr.splice(arr.indexOf(min),1);
        }
        output.push(arr[0]);
        return output;
    }
    

    http://jsfiddle.net/c5wRS/1/

    链接地址: http://www.djcxy.com/p/19335.html

    上一篇: Sort an array of objects based on values in the objects

    下一篇: JS sort object by "x" in array