gpt4 book ai didi

javascript - Ramda 找到两个不同的嵌套键值

转载 作者:行者123 更新时间:2023-12-01 01:54:25 25 4
gpt4 key购买 nike

我是这个 Ramda 的新成员,有可能在同一级别的对象中获取两个不同的键值吗?

我在下面添加了相同的代码:

这里,列表对象有用户和员工关键字,我尝试实现同时获取用户和员工详细信息。

const R = require('ramda');

var list = [
{"doc":{"Title":"test1","Relations":{"users":[{"name": "user1"}]}}},
{"doc":{"Title":"test2","Relations":{"employee":[{"name": "user2"}]}}}
];

var getDetails= R.map(
R.pipe(
R.prop('doc'),
R.pipe(R.path(['Relations', 'users']))
)
)

getDetails(list);

在我的代码中,我仅使用用户 key 。可以获取两个 key (用户和员工)。

当前输出:

[[{"name": "user1"}], undefined]

预期输出:

[[{"name": "user1"}], [{"name": "user2"}]]

最佳答案

利用已有的解决方案,您离解决方案已经不远了。

其他一些可以提供帮助的功能是:

  • R.pick - 这会将对象转换为仅包含您提供的 key (例如usersemployee)。
  • R.values - Ramda 的功能相当于 Object.prototype.values
  • R.chain - 这允许您映射列表,然后展平生成的嵌套列表。

const list = [
{"doc":{"Title":"test1","Relations":{"users":[{"name": "user1"}]}}},
{"doc":{"Title":"test2","Relations":{"employee":[{"name": "user2"}]}}}
]

const getDetails = R.chain(R.pipe(
R.path(['doc', 'Relations']),
R.pick(['users', 'employee']),
R.values
))

const result = getDetails(list)

console.log(result)
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>

关于javascript - Ramda 找到两个不同的嵌套键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51151896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com