javascript - 如何使用 Ramda 基于嵌套键对对象数组进行排序?

标签 javascript ramda.js

我从这样的对象开始:

const myObj = {
  key1: {a: 123, b: 'some field1'},
  key2: {a: 1, b: 'some field2'},
  key3: {a: 123123, b: 'some field3'}
}

我使用 R.toPairs 将其转换为数组, 导致:
[
  ["key1", {"a": 123, "b": "some field1"}], 
  ["key2", {"a": 1, "b": "some field2"}], 
  ["key3", {"a": 123123, "b": "some field3"}]
]

现在不确定如何在更深的键 a 上对该数组进行排序.我听说 Ramda 的镜头可以提供帮助,但不确定如何。我也对非镜头方法持开放态度。

最佳答案

一个简单的方法是组合两个 Prop :

R.sortBy(
    R.compose(
        R.prop('a'), R.prop(1)
    )
)
(R.toPairs(myObj))

this recipe如果您需要更多嵌套。

关于javascript - 如何使用 Ramda 基于嵌套键对对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671912/

相关文章:

node.js - Nodejs - 通过添加具有相同键的值来返回键值对的数组

javascript - 如何使这段代码更具功能性和可读性?

functional-programming - 在对象嵌套数组中查找对象的路径

javascript - 在我的 Nodejs 项目中编辑产品时出现问题

javascript - Swift 构造函数括号的工作方式与 Javascript IIFE 括号的工作方式相同吗?

javascript - react : why is getDefaultProps a method while propTypes is a plain object?

php - 将 php 变量传输到 javascript 变量

javascript - 使用 ramda.js 获取嵌套对象数组中某个键的所有值

javascript - 如何在 ionic 应用程序中设置 setCancelable(false)?

javascript - 如何在 vanilla JS 中重写这个 ramda.js 代码