如何按数组每一项内的数值对数组进行从大到小的降序排序
你给出的预期结果中重复出现了两次{"Bronze":2910}属于笔误,实际排序后不会出现重复元素,以下是可行的实现方案:
实现逻辑
数组中的每个元素都是仅包含1个键值对的对象,排序时只需提取每个对象的唯一属性值作为排序依据,做降序比较即可。
常用语言实现示例
JavaScript
// 原始数组 const originArr = [{"Platinum":13},{"Bronze":2910},{"Diamond":92},{"Gold":346},{"Silver":649},{"Stone":12561}]; // 按值降序排序 const sortedArr = originArr.sort((a, b) => { const valueA = Object.values(a)[0]; const valueB = Object.values(b)[0]; return valueB - valueA; }); console.log(sortedArr);
运行输出结果:
[{"Stone":12561},{"Bronze":2910},{"Silver":649},{"Gold":346},{"Diamond":92},{"Platinum":13}]
Python
# 原始数组 origin_arr = [{"Platinum":13},{"Bronze":2910},{"Diamond":92},{"Gold":346},{"Silver":649},{"Stone":12561}] # 按值降序排序 sorted_arr = sorted(origin_arr, key=lambda item: list(item.values())[0], reverse=True) print(sorted_arr)
运行输出结果和上述JavaScript示例一致。
内容的提问来源于stack exchange,提问作者user13751884
相关产品推荐
相关产品推荐

