javascript – 根据键和基于值对对象数组进行排序

考虑一下:

[{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;
    })));

这里我只考虑了一个键,但你总是可以将它扩展到多个键,同样你也可以根据值进一步排序.

点赞