Javascript/ lambda : How to make the following code functional

标签 javascript functional-programming ecmascript-6 ramda.js

您好,我有以下对象结构,

const usersList = {
  NFr9F4WbBxR4H5ajolbS6q0skPF2: {
    name: "justin davidson",
    uid: "NFr9F4WbBxR4H5ajolbS6q0skPF2"
  },
  asas9F4WbBxR4H5ajolbS6q0sasF2: {
    name: "sawyer davidson",
    uid: "asas9F4WbBxR4H5ajolbS6q0sasF2"
  }
}

它有一个用户 ID 作为键,它是嵌套在其中的用户对象。我想存储内部用户数据。我一直在使用 Ramda JS,并通过执行以下操作完成了此操作,

let x = []
const y = R.keys(usersList).forEach((uid) => {  
  x.push(usersList[uid])
  return x
})

返回

[{"name":"justin davidson","uid":"NFr9F4WbBxR4H5ajolbS6q0skPF2"},    
{"name":"sawyer davidson","uid":"asas9F4WbBxR4H5ajolbS6q0sasF2"}]

..但是我想以纯功能的方式实现相同的目的。这里最好的方法是什么?我猜 compose and map 但我似乎无法解决。寻找一点方向。

谢谢

最佳答案

只需使用 map 而不是 forEach:

const x = R.keys(usersList).map((uid) => usersList[uid])

看起来还有一个 values 方法可以满足您的需求:

const x = R.values(usersList)

关于Javascript/ lambda : How to make the following code functional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40621429/

相关文章:

javascript - 如何从 Promise 中返回值?

python - 检查对象是否是字符串列表的列表?

javascript - JS : Replace some fields of an specific object inside of an array

javascript - process.getuid() 不适用于 Windows

javascript - react /回流如何进行正确的异步调用

list - 如何在 Haskell 中将三元组列表转换为一个三元组列表?

functional-programming - Erlang中列表的笛卡尔幂

javascript - RxJS 组合可观察量

javascript - 如何循环创建带有链接的列表?

javascript - 使用 Proj4js 添加纬度和经度 map 点系列的 Highmaps 自定义 map