gpt4 book ai didi

javascript - Ramda - 从数组中查找匹配的对象

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

从以下两个列表 list1list2 中,我需要从 list1 返回与 head 的值匹配的对象tail 来自 list2

我试图使用ramdajs来实现这一点。

const list1 = [ 
{ tail: 'A', head: 'B', distance: '5' },
{ tail: 'B', head: 'C', distance: '4' },
{ tail: 'C', head: 'D', distance: '8' },
{ tail: 'D', head: 'C', distance: '8' },
{ tail: 'D', head: 'E', distance: '6' },
{ tail: 'A', head: 'D', distance: '5' },
{ tail: 'C', head: 'E', distance: '2' },
{ tail: 'E', head: 'B', distance: '3' },
{ tail: 'A', head: 'E', distance: '7' }
]

const list2 = [ { tail: 'A', head: 'B' }, { tail: 'B', head: 'C' } ]

// result should be [{ tail: 'A', head: 'B', distance: '5' },
// { tail: 'B', head: 'C', distance: '4' }] from list1

最佳答案

如果您想使用ramdajs,您可以使用innerJoin选择与谓词匹配的项目,如下所示:

const list1 = [ 
{ tail: 'A', head: 'B', distance: '5' },
{ tail: 'B', head: 'C', distance: '4' },
{ tail: 'C', head: 'D', distance: '8' },
{ tail: 'D', head: 'C', distance: '8' },
{ tail: 'D', head: 'E', distance: '6' },
{ tail: 'A', head: 'D', distance: '5' },
{ tail: 'C', head: 'E', distance: '2' },
{ tail: 'E', head: 'B', distance: '3' },
{ tail: 'A', head: 'E', distance: '7' }
];

const list2 = [ { tail: 'A', head: 'B' }, { tail: 'B', head: 'C' } ];

const result = R.innerJoin(
(item1, item2) => item1.tail === item2.tail && item1.head === item2.head,
list1,
list2
);

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/48272320/

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