如何使用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不是函数错误”。
答案
如果我正确地解释了您的问题,则要保留属性a
或d
为Nil
的所有对象(对null
或undefined
用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将对象数组转换为列表的主要内容,如果未能解决你的问题,请参考以下文章
如何将flattenObj函数从ramda cookbook转换为迭代函数