gpt4 book ai didi

javascript - 是否有一种无点的方法通过比较元组的元素从列表中过滤掉元组?

转载 作者:行者123 更新时间:2023-11-28 14:46:19 25 4
gpt4 key购买 nike

所以我有一些代码需要使用 (input, input) 调用 xprod ,类似于如下:

const input = [
{ id: 1, data: 'a' },
{ id: 2, data: 'b' },
];
const product = xprod(input, input);
/*
[
[ { id: 1, data: 'a' }, { id: 1, data: 'a' } ],
[ { id: 1, data: 'a' }, { id: 2, data: 'b' } ],
[ { id: 2, data: 'b' }, { id: 1, data: 'a' } ],
[ { id: 2, data: 'b' }, { id: 2, data: 'b' } ],
]
*/

我想通过将元组的第一个元素与同一元组中的第二个元素进行比较来过滤上面列表中的元组。在这种情况下,要删除包含具有相同 id 的对象的元组(因此应该过滤掉第 0 个和第 3 个元素 - 我知道在这个简化的示例中我也可以使用严格相等来过滤,但情况通常并非如此在我实际编写的代码中)。

我知道我可以使用 lambda 非常简单地完成此任务,但由于我发现自己在使用 ramda 时经常会遇到这种数据(元组列表),因此我经常陷入尝试比较一个项目中的一项的困境。以无点的方式将元组转换为同一元组中的另一个项目。也许这是一个保持简单并使用 lambda 的论点,但我很好奇是否有不同的方法来做到这一点。

Here's a link to a ramda repl包含一个实现。

最佳答案

一种选择是简单地包装一个需要元组的两个参数的函数 R.apply 。在您的示例中,这可能是部分应用的 R.eqProps .

R.filter(R.apply(R.eqProps('id')), product)

关于javascript - 是否有一种无点的方法通过比较元组的元素从列表中过滤掉元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285517/

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