[英]Array filtering in nested object using ramda
假设我们有以下 object:
const sample = {
foo: {
tags: [
'aaa', 'bbb'
],
a: 1,
b: 10
},
bar: {
tags: [
'ccc', 'ddd'
],
a: 11,
b: 100
}
}
如何使用 ramda 从 object sample
中删除特定标签值? 我已经这样做了
/// Remove tag named 'aaa'
R.map(v => R.assoc('tags', R.without('aaa', v.tags), v), sample)
这达到了预期的结果,但我怎样才能消除 map 内的 lamda (和创建的闭包)?
您可以R.evolve每个 object,并使用 R.without 来转换tags
的值:
const { map, evolve, without } = R const fn = map(evolve({ tags: without('aaa') })) const sample = {"foo":{"tags":["aaa","bbb"],"a":1,"b":10},"bar":{"tags":["ccc","ddd"],"a":11,"b":100}} const result = fn(sample) console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.0/ramda.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.