[英]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.