Javascript 使用ramda对嵌套对象进行数组过滤

Javascript 使用ramda对嵌套对象进行数组过滤,javascript,ramda.js,Javascript,Ramda.js,假设我们有以下对象: 常量样本={ 傅:{ 标签:[ “aaa”,“bbb” ], 答:1,, b:10 }, 酒吧:{ 标签:[ “ccc”、“ddd” ], a:11, b:100 } } 如何使用ramda从对象样本中删除特定的标记值? 我已经这样做了 ///删除名为“aaa”的标记 R.mapv=>R.assoc'tags',R.不带'aaa',v.tags,v,sample 这达到了预期的效果,但我如何消除lamda和map内部创建的闭包?您可以使用而不是。assoc希望在提供的对象上

假设我们有以下对象:

常量样本={ 傅:{ 标签:[ “aaa”,“bbb” ], 答:1,, b:10 }, 酒吧:{ 标签:[ “ccc”、“ddd” ], a:11, b:100 } } 如何使用ramda从对象样本中删除特定的标记值? 我已经这样做了

///删除名为“aaa”的标记 R.mapv=>R.assoc'tags',R.不带'aaa',v.tags,v,sample 这达到了预期的效果,但我如何消除lamda和map内部创建的闭包?

您可以使用而不是。assoc希望在提供的对象上设置一个属性和普通值,而evolves则希望一个属性和函数生成新的值,尽管使用的语法稍有不同

R.map(R.evolve({tags: R.without('aaa')}), sample)
你可以用它来代替。assoc希望在提供的对象上设置一个属性和普通值,而evolves则希望一个属性和函数生成新的值,尽管使用的语法稍有不同

R.map(R.evolve({tags: R.without('aaa')}), sample)
可以在每个对象上使用R.without来变换标记的值:

const{map,evolve,不带}=R 常数fn=mapfolve{ 标签:没有“aaa” } const sample={foo:{tags:[aaa,bbb],a:1,b:10},bar:{tags:[ccc,ddd],a:11,b:100} const result=fn样本 console.logresult 可以在每个对象上使用R.without来变换标记的值:

const{map,evolve,不带}=R 常数fn=mapfolve{ 标签:没有“aaa” } const sample={foo:{tags:[aaa,bbb],a:1,b:10},bar:{tags:[ccc,ddd],a:11,b:100} const result=fn样本 console.logresult