将嵌套的对象数组过滤为对象数组

244

我有一个嵌套的对象数组。我该如何使一组对象也从嵌套属性中获取值?如果onClick属性为空,则意味着存在一个名为子级的属性,并且父元素不应成为新列表的一部分。我需要遍历children数组并获取值。请在下面查看预期的输出。

const headers = [{
    title: 'Arun',
    id: 'arunId',
    onClick: 'onClickArun'
  },
  {
    title: "George",
    id: 'georgeId',
    onClick: '',
    children: [{
        title: 'David',
        id: 'davidId',
        onClick: 'onClickDavid'
      },
      {
        title: 'Patrick',
        id: 'patrickId',
        onClick: 'onClickPatrick'
      }
    ]
  },
  {
    title: 'Mark',
    id: 'markId',
    onClick: 'onClickMark'
  }
];

console.log(headers.map(item => {
  return {
    title: item.title,
    onClick: item.onClick
  }
}))

预期产量:

[{
    title: 'Arun',
    onClick: 'onClickArun'
  },
  {
    title: 'David',
    onClick: 'onClickDavid'
  },
  {
    title: 'Patrick',
    onClick: 'onClickPatrick'
  },
  {
    title: 'Mark',
    onClick: 'onClickMark'
  }
]

任何帮助是极大的赞赏。

妮娜·斯科茨(Nina Scholz)

您可以采用Array#flatMap递归回调。

const
    map = ({ title, onClick, children }) => onClick
        ? { title, onClick }
        : children.map(map);

var headers = [{ title: 'Arun', id: 'arunId', onClick: 'onClickArun' }, { title: "George", id: 'georgeId', onClick: '', children: [{ title: 'David', id: 'davidId', onClick: 'onClickDavid' }, { title: 'Patrick', id: 'patrickId', onClick: 'onClickPatrick' }] }, { title: 'Mark', id: 'markId', onClick: 'onClickMark' }],        
    result = headers.flatMap(map);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将对象数组过滤为对象

来自分类Dev

从对象数组过滤

来自分类Dev

通过嵌套的对象值数组过滤对象数组

来自分类Dev

使用基于嵌套值的数组过滤对象数组

来自分类Dev

无法根据嵌套数组过滤对象数组

来自分类Dev

按键数组过滤对象

来自分类Dev

按数组过滤对象

来自分类Dev

按键数组过滤对象

来自分类Dev

根据嵌套数组过滤Firebase对象

来自分类Dev

角嵌套数组过滤整个对象

来自分类Dev

如何用数组过滤对象数组

来自分类Dev

如何基于其他数组使用嵌套数组过滤对象数组

来自分类Dev

根据属性将对象数组过滤为多个对象数组

来自分类Dev

如何用数组过滤对象

来自分类Dev

使用平面数组过滤JSON对象

来自分类Dev

Mongo按对象数组过滤文档

来自分类Dev

如何按角色数组过滤对象?

来自分类Dev

如何用数组过滤对象

来自分类Dev

使用平面数组过滤JSON对象

来自分类Dev

对象数组过滤 angular2

来自分类Dev

按 id 数组过滤对象

来自分类Dev

基于对象属性的数组过滤

来自分类Dev

用子数组过滤对象

来自分类Dev

lodash:使用不同的对象数组过滤对象数组

来自分类Dev

根据其他对象数组过滤对象数组

来自分类Dev

根据对象数组过滤对象数组返回相同的结果

来自分类Dev

使用基于嵌套值的数组过滤对象数组以提取特定字段

来自分类Dev

使用没有嵌套循环js的数组过滤对象数组

来自分类Dev

基于数组过滤对象的属性。并获取过滤后的对象