我试图避免为以下用例编写自己的排序算法:
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)
这是控制台输出:
正如您所看到的,使用非核心的排序我丢失了关键数据.这个结构可以变得非常大,所以我试图避免像转换为数组然后回到集合之类的东西.有没有办法在没有滚动我自己的排序功能的情况下这样做?