基本上,我正在尝试按 property 对一组对象进行排序。
假设我在一个数组中有三个对象,每个对象都有一个属性views
var objs = [
{
views: '17'
},
{
views: '6'
},
{
views: '2'
}
];
对数组使用排序方法objs
:
function sortByProperty(property) {
return function (a,b) {
/* Split over two lines for readability */
return (a[property] < b[property]) ? -1 :
(a[property] > b[property]) ? 1 : 0;
}
}
objs.sort(sortByProperty('views'));
我希望objs
现在基本上是相反的顺序,但是'17'
似乎被视为小于'6'
and '2'
。我意识到这可能是因为'1'
.
关于解决这个问题的任何想法?
我意识到我可以遍历每个对象并转换为整数 - 但有没有办法避免这样做?
JSFiddle:http: //jsfiddle.net/CY2uM/