var arr=[{i:5,v:1},{i:2,v:4},{i:3,v:2},{i:1,v:5},{i:4,v:3}];
arr.sort(function(a, b) {  return a.i - b.i; });
console.log(arr);

解决方案 »

  1.   


    不行,你这样做的结果是:[object Object],[object Object],[object Object],[object Object],[object Object]

    不是我想要的结果。
      

  2.   

    可以按i或v排序'use strict'
            var arr = [{ i: 5, v: 1 }, { i: 2, v: 4 }, { i: 3, v: 2 }, { i: 1, v: 5 }, { i: 4, v: 3 }];        function comparefn(propName)
            {
                return function (x, y) {
                    var v1 = x[propName];
                    var v2 = y[propName];
                    return v1 - v2;
                };
            }        arr.sort(comparefn('v'));
            arr.sort(comparefn('i'));        arr.forEach(function (val) {
                console.log(val.i,val.v);
            });