如何使用jquery或javascript对对象数组进行排序

我有一个对象数组:

var array = [(id, name, value),(id, name, value)]; //and so on

如何使数组按属性名称的升序排序?(array[i][1])

我试图这样做:,但这不起作用。array[i][1].sort()

请帮帮我!

编辑:数组可以包含两个以上的对象!它可以包含数百个。

编辑:为什么这个问题被标记为重复,当它被问到“重复”问题之前的2年?


答案 1
//This will sort your array
function SortByName(a, b){
  var aName = a.name.toLowerCase();
  var bName = b.name.toLowerCase(); 
  return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0));
}

array.sort(SortByName);

答案 2
var array = [[1, "grape", 42], [2, "fruit", 9]];

array.sort(function(a, b)
{
    // a and b will here be two objects from the array
    // thus a[1] and b[1] will equal the names

    // if they are equal, return 0 (no sorting)
    if (a[1] == b[1]) { return 0; }
    if (a[1] > b[1])
    {
        // if a should come after b, return 1
        return 1;
    }
    else
    {
        // if b should come after a, return -1
        return -1;
    }
});

该函数采用一个附加参数,即一个采用两个参数的函数。这个函数应该返回,或者取决于两个参数中的哪一个应该在排序中排在第一位。更多信息sort-101

我还修复了多维数组中的语法错误。