gpt4 book ai didi

typescript - 基于另一个过滤对象数组 - Ramda 函数式风格

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:19 25 4
gpt4 key购买 nike

let arr = [
{
id: 100,
name: 'bmw'
},
{
id: 101,
name" 'porsche'
}
];

let selected = [{id: 100}];

Ramda 根据输入 (list, selected) 获取过滤列表 F 的方法是什么?

最佳答案

Ramda 有一个内置函数,可以直接处理查找单个值的问题。如果您想找到列表中的所有内容,则需要稍微扩展一下。但是whereEq测试对象以查看所有属性是否与示例对象中的属性匹配。所以你可以这样做:

const {find, whereEq, map} = R;

const arr = [
{id: 100, name: 'bmw'},
{id: 101, name: 'porsche'},
{id: 102, name: 'ferrari'},
{id: 103, name: 'clunker'}
]

console.log(find(whereEq({id: 101}), arr))

const choose = (all, selected) => map(sel => find(whereEq(sel), all), selected)

console.log(choose(arr, [{id: 101}, {id: 103}]))
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.js"></script>

根据您打算如何使用它,您可能希望将 choose 包装在 curry 中.

关于typescript - 基于另一个过滤对象数组 - Ramda 函数式风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49017712/

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