我有一个解释:排序由underscore.js键
{
abc : {id : 1},
defg : {id : 2}
}
我想通过键长度使用underscore.js 输出像排序词典:
{
defg : {id : 2},
abc : {id : 1}
}
原型工作: http://jsfiddle.net/UCWL2/71/
我有一个解释:排序由underscore.js键
{
abc : {id : 1},
defg : {id : 2}
}
我想通过键长度使用underscore.js 输出像排序词典:
{
defg : {id : 2},
abc : {id : 1}
}
原型工作: http://jsfiddle.net/UCWL2/71/
字典,这是一个普通的JS对象,不能可靠地排序,因为元素的顺序没有指定由ECMA Script 5规范。当然,你可能依赖于浏览器特定的行为,但不能保证它是相同的浏览器,它们的版本等。
如果你需要排序的地图,你会想要使用数组(但随后你失去了日志访问的复杂性),或者某个第三方库(即dsjslib)。
只有一个问题,我没有得到这些upvotes任何积分,你知道为什么会发生? –
@RishiPrakash - 看来你今天已经达到了200个重要点 - 这是极限,恭喜! [请参阅文档了解更多信息](http://stackoverflow.com/help/whats-reputation) – kamituel
哦,我不知道这件事。谢谢 :) –
var avatars = [
{idx: 102, userInfo: {buddy_name: 'Avatar102', is_online: 1}},
{idx: 100, userInfo: {buddy_name: 'Avatar100', is_online: 1}},
{idx: 101, userInfo: {buddy_name: 'Avatar101', is_online: 1}}
];
avatars = _(avatars).sortBy(function(avatar) {
return -avatar.idx;// -ve is put in front of variable to sort in desc i.e reverse direction
});
console.log(JSON.stringify(avatars));
只需替换return avatar.idx; //。userInfo.buddy_name;通过返回-avatar.idx; //。userInfo.buddy_name;它扭转了结果。
工作的jsfiddle:http://jsfiddle.net/0Lb44h96/
如果我的回答帮你,你会接受它。 –
这已经只有10分钟,给OP一些时间@RishiPrakash;)我会给你一个upvote,但! – kamituel
@ kamituel哦,好的。我不会贪婪:) :) –