代码之家  ›  专栏  ›  技术社区  ›  Abidh

将数组过滤为多个子集的优化方法

  •  0
  • Abidh  · 技术社区  · 3 年前

    我有这个数组

    const array = [ {value: 1, selected: false, highlighted: true}, 
    {value: 3, selected: true, highlighted: true}, 
    {value: 4, selected: false, highlighted: false}, 
    {value: 2}, selected: true, highlighted: false ]
    

    我想从上面生成三个子集数组,它们是 突出显示 , 挑选出来的 selected高亮显示

    我可以使用array.filter方法实现,如下所示

    const selected = array.filter((i) => i.selected)
    const highlighted = array.filter((i) => i.highlighted)
    const selectedHighlighted = array.filter((i) => i.selected && selectedHighlighted)
    

    我的问题是,我如何以最佳方式做到这一点,上面的代码有3个循环,如果我使用类似forEach的方法,检查其中的条件,并将对象推送到相应的数组,这不是比上述方法更优化吗?

    0 回复  |  直到 3 年前