繁体   English   中英

在JavaScript中对数组对象进行排序

[英]Sort an object of arrays in JavaScript

与像

{
 5: ['C','A','B'],
 8: ['E','F','D']
}

我正在尝试对每个键的数组进行排序,同时返回整个对象。 上面的内容看起来像这样:

{
 5: ['A','B','C'],
 8: ['D','E','F']
}

我尝试了许多变化

Object.keys(myObj).map(k => { 
   return { k: myObj[k].sort() };
}

但这会将文字k作为每个键,而不是维护原始对象的键。 更不用说这还会创建一个对象数组,因为map为每个键返回一个对象。

编辑:

我发现很多“对象的排序数组”-但不是SO上的“数组的排序对象”-复制并链接(如果已经存在)。

使用reduce

 const data = { 5: ['C','A','B'], 8: ['E','F','D'] } let dataSort = Object.keys(data).reduce((acc, item) => { acc[item] = data[item].sort() return acc }, {}) console.log(dataSort) 

尝试。

 const newSortedObj = Object.entries(yourObject).reduce((acc, [key, values]) => {
    acc[key] = values.sort((a, b) => a.localeCompare(b));

    return acc;
  }, {})

进行string sort时,请考虑语言环境和字符大小写。 看一下本地比较API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM