考虑一下:
[{name:'John'},{age:25},{address:'some street'}]
正如您所看到的,没有一个键是一致的名称,因此我无法使用.
arr.sort((a,b)=> a.consistentKey < b.consistentKey);
我怎样才能按名称和价值来排序这样的东西呢?
所以按字母顺序按键排序的应该是:
[{address:'some street'},{age:25},{name:'John'}]
最佳答案 如果您正在考虑首先根据键进行排序,然后再根据值进行排序,则可以尝试以下操作:
var a = [{name:'John'},{age:25},{address:'some street'}];
alert(JSON.stringify(a.sort((a, b) => {
nameA = Object.keys(a)[0];
nameB = Object.keys(b)[0];
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
// names must be equal
return 0;
})));
这里我只考虑了一个键,但你总是可以将它扩展到多个键,同样你也可以根据值进一步排序.