小编Ros*_*sco的帖子

如何在JavaScript中对对象集合进行排序而不将其转换为数组

我试图避免为以下用例编写自己的排序算法:

avatars = {};
avatars[102] = {userInfo: {buddy_name: 'Avatar102', is_online: 1}};
avatars[100] = {userInfo: {buddy_name: 'Avatar100', is_online: 1}};
avatars[101] = {userInfo: {buddy_name: 'Avatar101', is_online: 1}};

console.log(_.keys(avatars));
avatars = _.sortBy(avatars, function(avatar) {return avatar.userInfo.buddy_name.toLowerCase();});
console.log(_.keys(avatars));
Run Code Online (Sandbox Code Playgroud)

这是控制台输出:

  • ["102","100","101"]
  • ["0","1","2"]

正如您所看到的,使用非核心的排序我丢失了关键数据.这个结构可以变得非常大,所以我试图避免像转换为数组然后回到集合之类的东西.有没有办法在没有滚动我自己的排序功能的情况下这样做?

javascript underscore.js

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

javascript ×1

underscore.js ×1