Ramda:通过与另一个数组中的每个项目进行比较,从数组中获取对象 [英] Ramda: get objects from array by comparing with each item in another array

查看:232
本文介绍了Ramda:通过与另一个数组中的每个项目进行比较,从数组中获取对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的数组如下:

ids = [1,3,5];

和另一个数组如:

items: [
{id: 1, name: 'a'}, 
{id: 2, name: 'b'}, 
{id: 3, name: 'c'}, 
{id: 4, name: 'd'}, 
{id: 5, name: 'e'}, 
{id: 6, name: 'f'}
];

我想要的是另一个数组:

What I want is another array like:

array = [{id: 1, name: 'a'}, {id: 3, name: 'c'}, {id: 5, name: 'e'}];

我无法理解它。到目前为止我尝试过:

I can't get my head around it. so far i tried like:

console.log(R.filter(R.propEq('id', <donnow what shud be here>), items);
console.log( R.pick(ids)(items))


推荐答案

如果您仍想以ramda方式执行此操作

If you still want to do it in ramda way

Ramda REPL

const ids = [1,3,5];

const items = [
{id: 1, name: 'a'}, 
{id: 2, name: 'b'}, 
{id: 3, name: 'c'}, 
{id: 4, name: 'd'}, 
{id: 5, name: 'e'}, 
{id: 6, name: 'f'}
];

R.filter(R.compose(R.flip(R.contains)(ids), R.prop('id')), items)

这篇关于Ramda:通过与另一个数组中的每个项目进行比较,从数组中获取对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆