为什么我的 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 包含 tag1tag2

的数组

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']