Ramda:通过与另一个数组中的每个项目进行比较从数组中获取对象

Asi*_*K T 2 javascript arrays ramda.js

我有一个像这样的数组:

ids = [1,3,5];
Run Code Online (Sandbox Code Playgroud)

和另一个数组,如:

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'}
];
Run Code Online (Sandbox Code Playgroud)

我想要的是另一个数组,如:

array = [{id: 1, name: 'a'}, {id: 3, name: 'c'}, {id: 5, name: 'e'}];
Run Code Online (Sandbox Code Playgroud)

我无法解决这个问题。到目前为止,我尝试过:

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

cst*_*sik 5

如果您仍然想使用Ramda:

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'}
];

console.log(

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

);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>
Run Code Online (Sandbox Code Playgroud)