开发者社区> 问答> 正文

js对象元素排序问题

let obj = {
    上海: [100, 200, 300],
    广州: [80, 100, 220],
    北京: [120, 130, 160],
    深圳: [99, 150, 180]
};

要求:按照每一个元素的数组的第一个值从大到小排序,排序后的结果是

{
    北京: [120, 130, 160],
    上海: [100, 200, 300],
    深圳: [99, 150, 180],
    广州: [80, 100, 220],
};

有什么高级高效的方法呢

展开
收起
问问小秘 2020-01-09 17:32:58 980 0
1 条回答
写回答
取消 提交回答
  • 对象没有顺序的,只能帮你排序成数组了:

    import { pipe, sort, toPairs, descend, path } from 'ramda'

    const obj = { 上海: [100, 200, 300], 广州: [80, 100, 220], 北京: [120, 130, 160], 深圳: [99, 150, 180] }

    const sortedArray = pipe( toPairs, sort(descend(path([1, 0]))) )(obj) // sortedArray: // [["北京", [120, 130, 160]], ["上海", [100, 200, 300]], ["深圳", [99, 150, 180]], ["广州", [80, 100, 220]]]

    2020-01-09 18:27:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载