首页 > 解决方案 > 按字母顺序对 Object.entries 进行排序

问题描述

说我有这个:

for(let [k,v] of Object.entries({a:1,b:2}).sort((a,b) => b[0] - a[0])){
  console.log({k,v});
}

我总是得到这个输出:

{ k: 'a', v: 1 }
{ k: 'b', v: 2 }

即使我将其切换为:

a[0] - b[0]

为什么我不能按字母顺序对键进行排序?

标签: javascriptnode.js

解决方案


在比较字符串时,使用localeCompare()几乎总是更好。它为您处理大小写、国际字符和数字提供了更多的灵活性和选项。它返回的正是sort()想要的:

let arr = Object.entries({a:1,b:2})

arr.sort((a,b) => b[0].localeCompare(a[0]))
console.log(arr)

arr.sort((a,b) => a[0].localeCompare(b[0]))
console.log(arr)


推荐阅读