Javascript 如何使用ES6排序方法使用对象的各种属性值组织数组中的对象?

Javascript 如何使用ES6排序方法使用对象的各种属性值组织数组中的对象?,javascript,jquery,arrays,sorting,ecmascript-6,Javascript,Jquery,Arrays,Sorting,Ecmascript 6,我有一个这样的数组 let arr = [ {label: "Bob Bobson", value: 17345, group: "Applicants"} {label: "Frank Frankson", value: 17347, group: "Applicants"} {label: "Bill Billson", value: 17348, group: "Applicants"} {label: "John Johnson", value: 1, g

我有一个这样的数组

let arr = [
    {label: "Bob Bobson", value: 17345, group: "Applicants"}
    {label: "Frank Frankson", value: 17347, group: "Applicants"}
    {label: "Bill Billson", value: 17348, group: "Applicants"}
    {label: "John Johnson", value: 1, group: "Caregivers"}
    {label: "Aaron Aaronson", value: 15, group: "Caregivers"}
    {label: "Jacob Jacobson", value: 172, group: "Clients"}
    {label: "Eric Ericsson", value: 1441, group: "Clients"}
    {label: "Doc Docson", value: 1147, group: "Doctors"}
]
我想使用对象中的两个属性值,label属性和group属性对其进行排序。然而,我目前没有得到任何结果。我想先按组排序,然后按标签排序

下面是我正在尝试的

arr.sort((a, b) => { a.label.toUpperCase() > b.label.toUpperCase()) ? 1 : -1 });

使用此函数,我将返回相同的结果,但不会对label属性进行排序。

您的排序函数不会返回任何内容。箭头函数可以执行隐式返回语句,但前提是没有花括号。因此,要么删除花括号,要么添加return语句。另外,在
b.label.toUpperCase()之后还有一个额外的右括号


好的,我看到这会对label属性进行排序,并扰乱group属性。是的,我向您展示了为什么不进行排序。如果您想进一步修改排序条件,请随意。若要继续排序,是否只需链接命令?传递到的函数。排序决定如何排序。如果希望按组对其进行排序,则不要比较标签,而是比较组。如果你想两者都排序,那么比较两者。好的,谢谢。是的,我没有返回导致它出错的值。仅供参考,
Array#sort
已经存在很长时间了。这对ES6来说并不新鲜。
arr.sort((a, b) => a.label.toUpperCase() > b.label.toUpperCase() ? 1 : -1 );

arr.sort((a, b) => { 
    return a.label.toUpperCase() > b.label.toUpperCase() ? 1 : -1 
});