我得到了一个数组(参见下面的数组中的一个对象),我需要使用JavaScript按名字进行排序。我该怎么做呢?
var user = {
bio: null,
email: "user@domain.com",
firstname: "Anna",
id: 318,
lastAvatar: null,
lastMessage: null,
lastname: "Nickson",
nickname: "anny"
};发布于 2018-03-14 04:05:04
我们可以使用localeCompare,但也需要检查键的False值
如果一个条目缺少lname,下面的代码将不起作用。
obj.sort((a, b) => a.lname.localeCompare(b.lname))因此,我们需要检查False值,如下所示
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,它非常简单。它将检测返回值,即数字或字符串,并相应地进行排序。
import sortBy from 'lodash/sortBy';
sortBy(obj,'name')https://stackoverflow.com/questions/6712034
复制相似问题