为什么我的 R.flatten(R.map(R.prop 在这里返回未定义的对象?RamdaJS
Why is my R.flatten(R.map(R.prop returning and undefined object here? RamdaJS
https://codepen.io/leongaban/pen/EgvBpx
据我了解,我只是将我的 comboTags 数组传入。数据总是柯里化到 Ramda 语句的右侧。
我期望 flatTags
包含 tag1
和 tag2
的数组
const comboTags = [
{
tags: [
{
name: 'tag1'
}
],
person: {
name: 'Jerry'
}
},
{
tags: [
{
name: 'tag2'
}
],
person: {
name: 'Laura'
}
}
];
const flattenTags = container => R.flatten(R.map(R.prop('tags')));
let flatTags = flattenTags(comboTags);
console.log('flatTags',flatTags);
我相信您正在寻找 pluck
还要注意 compose
的用法,或者使用 pipe
!这允许无点函数:Try It Out
const comboTags = [
{
tags: [
{
name: 'tag1'
}
],
person: {
name: 'Jerry'
}
},
{
tags: [
{
name: 'tag2'
}
],
person: {
name: 'Laura'
}
}
];
const getTagNames = R.compose(R.pluck('name'), R.flatten, R.pluck('tags'))
getTagNames(comboTags) // ['tag1', 'tag2']
https://codepen.io/leongaban/pen/EgvBpx
据我了解,我只是将我的 comboTags 数组传入。数据总是柯里化到 Ramda 语句的右侧。
我期望 flatTags
包含 tag1
和 tag2
const comboTags = [
{
tags: [
{
name: 'tag1'
}
],
person: {
name: 'Jerry'
}
},
{
tags: [
{
name: 'tag2'
}
],
person: {
name: 'Laura'
}
}
];
const flattenTags = container => R.flatten(R.map(R.prop('tags')));
let flatTags = flattenTags(comboTags);
console.log('flatTags',flatTags);
我相信您正在寻找 pluck
还要注意 compose
的用法,或者使用 pipe
!这允许无点函数:Try It Out
const comboTags = [
{
tags: [
{
name: 'tag1'
}
],
person: {
name: 'Jerry'
}
},
{
tags: [
{
name: 'tag2'
}
],
person: {
name: 'Laura'
}
}
];
const getTagNames = R.compose(R.pluck('name'), R.flatten, R.pluck('tags'))
getTagNames(comboTags) // ['tag1', 'tag2']