用javascript实现:依据每个元素的属性i由小到大,排列下面的数组(有点难度哦)

用javascript实现:根据每个元素的属性i由小到大,排列下面的数组(有点难度哦):
用javascript实现:根据每个元素的属性i由小到大,排列下面的数组(有点难度哦):

var arr=[{i:5,v:1},{i:2,v:4},{i:3,v:2},{i:1,v:5},{i:4,v:3}];



------解决思路----------------------
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);

------解决思路----------------------
换一个打印方法
用javascript实现:依据每个元素的属性i由小到大,排列下面的数组(有点难度哦)
------解决思路----------------------
可以按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);
        });