如何使用Ramda将对象数组转换为列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Ramda将对象数组转换为列表相关的知识,希望对你有一定的参考价值。

R.pipe(
  R.map(R.any(R.isNil(R.pickAll(['a','d']))))
)([{a: 1, b: 2, c: 3, d: 4},{a: 1, b: 2, c: 3, d: 5}])

将导致一个数组,其中包含两个对象的值均为false,因为两个对象都不为null。相反,我想评估单个列表中的值,看看是否有Nil。我已经尝试过使用flatten,但是得到一个“ n.apply不是函数错误”。

答案

如果我正确地解释了您的问题,则要保留属性adNil的所有对象(对nullundefined用Ramda语言表示)。如果我误会了,请纠正我。

假设我的解释正确,这应该可以解决问题:

const data = [{b: 2, c: 3, d: 4}, {a: 1, b: 2, c: 3}, {a: 1, b: 2, c: 3, d: 5}]

const result = R.filter(
  R.either(R.propSatisfies(R.isNil, 'a'), R.propSatisfies(R.isNil, 'd')),
  data
)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>

以上是关于如何使用Ramda将对象数组转换为列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ramda 在特定条件下添加对象属性值

Ramda — 根据允许列表切换对象的属性

如何将flattenObj函数从ramda cookbook转换为迭代函数

如何将 BVH 节点对象转换为简单数组?

如何将对象列表转换为对象列表数组,每个数组索引都有 2 个计数?

如何将具有元素数组的每个对象的对象列表转换为具有子元素作为属性的对象数组