javascript - 如何在 JavaScript 中对对象键中的值进行排序
问题描述
如何仅对键“项目”中的值进行排序?
function solve(input) {
let heroes = {};
for (const line of input) {
let [name, level, items] = line.split(' / ');
if(!heroes.hasOwnProperty(name)) {
heroes[name] = {
level: Number(level),
items: items
}
}
}
let inArrEntries = Object.entries(heroes)
inArrEntries.sort((a, b) => (a[1].level - b[1].level))
console.log(inArrEntries);
}
输出:
[
[ 'Hes', { level: 1, items: 'Desolator, Sentinel, Antara' } ],
[ 'Derek', { level: 12, items: 'BarrelVest, DestructionSword' } ],
[ 'Isacc', { level: 25, items: 'Apple, GravityGun' } ]
]
预期输出:
[
[ 'Hes', { level: 1, items: 'Antara, Desolator, Sentinel,' } ],
[ 'Derek', { level: 12, items: 'BarrelVest, DestructionSword' } ],
[ 'Isacc', { level: 25, items: 'Apple, GravityGun' } ]
]
..................................................... ..................................................... ..................................................... ..................................................... .....................................
解决方案
您可以遍历所有条目,拆分 items
,排序", "
,然后加入。", "
const inArrEntries = [
[ 'Hes', { level: 1, items: 'Desolator, Sentinel, Antara' } ],
[ 'Derek', { level: 12, items: 'BarrelVest, DestructionSword' } ],
[ 'Isacc', { level: 25, items: 'Apple, GravityGun' } ]
];
for(const entry of inArrEntries){
entry[1].items = entry[1].items.split(", ").sort().join(", ");
}
document.write(JSON.stringify(inArrEntries));
推荐阅读
- apache-kafka - 处理 kafka 消费者中的反序列化错误(死信队列)
- entity-framework - 添加数据时是否可以确保顺序?
- excel - 如何仅禁用 Excel 电子表格中特定列的填充句柄?
- python - 计算嵌套列表中的最大差异
- html - 如何在使用 Spacy NER 预测命名实体时从文本中删除 html 标签,并再次使用 html 标签以原始格式显示相同的文本?
- d3.js - d3 浮动分组条在时间轴中具有范围值
- c# - 如何强制 MVC 应用程序在启用 Windows 身份验证的情况下要求提供凭据
- javascript - 选择框选项列表更改检测其他选择框更改未检测到更改
- python - 如何在pyautogui中单击图像中心
- vue.js - Vue Nuxt 滚动到不同的页面