首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Javascript中按名字(字母顺序)对数组排序

在Javascript中按名字(字母顺序)对数组排序
EN

Stack Overflow用户
提问于 2011-07-16 03:10:56
回答 22查看 944K关注 0票数 916

我得到了一个数组(参见下面的数组中的一个对象),我需要使用JavaScript按名字进行排序。我该怎么做呢?

代码语言:javascript
复制
var user = {
   bio: null,
   email:  "user@domain.com",
   firstname: "Anna",
   id: 318,
   lastAvatar: null,
   lastMessage: null,
   lastname: "Nickson",
   nickname: "anny"
};
EN

Stack Overflow用户

发布于 2018-03-14 04:05:04

我们可以使用localeCompare,但也需要检查键的False值

如果一个条目缺少lname,下面的代码将不起作用。

代码语言:javascript
复制
obj.sort((a, b) => a.lname.localeCompare(b.lname))

因此,我们需要检查False值,如下所示

代码语言:javascript
复制
let obj=[
{name:'john',lname:'doe',address:'Alaska'},
{name:'tom',lname:'hopes',address:'California'},
{name:'harry',address:'Texas'}
]
let field='lname';
console.log(obj.sort((a, b) => (a[field] || "").toString().localeCompare((b[field] || "").toString())));

我们可以使用lodash,它非常简单。它将检测返回值,即数字或字符串,并相应地进行排序。

代码语言:javascript
复制
import sortBy from 'lodash/sortBy';
sortBy(obj,'name')

https://lodash.com/docs/4.17.5#sortBy

票数 37
EN
查看全部 22 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6712034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档