break array of objects into separate arrays based on a property

后端 未结 7 1165
太阳男子
太阳男子 2020-12-01 07:10

Say I have an array like this:

var arr = [
    {type:\"orange\", title:\"First\"},
    {type:\"orange\", title:\"Second\"},
    {type:\"banana\", title:\"Thi         


        
7条回答
  •  [愿得一人]
    2020-12-01 07:43

    ES6 solution:

    function groupBy(arr, property) {
      return arr.reduce((acc, cur) => {
        acc[cur[property]] = [...acc[cur[property]] || [], cur];
        return acc;
      }, {});
    }
    

    or completely ES6fy:

    const groupBy = (arr, property) => {
        return arr.reduce((acc, cur) => {
          acc[cur[property]] = [...acc[cur[property]] || [], cur];
          return acc;
        }, {});
    }
    

    I hope it helps!

提交回复
热议问题