数组对象分组

原数据:

 

 

结果:

 

 

        /**
         *  数组对象
        */
         var a = [
            {
                item: [{ subValue: '长', subTitle: '100' }],
                title: '尺寸'
            },
            {
                item: [{ subValue: '宽', subTitle: '100' }],
                title: '尺寸'
            },
            {
                item: [{ subValue: '宽', subTitle: '100' }],
                title: 'a'
            },
            {
                item: [{ subValue: '宽', subTitle: '100' }],
                title: 'b'
            }
        ]
  
    function groups(data){
            var mapObj = {}, newArr = [];
                    for (var i = 0; i < data.length; i++) {
                        var ai = data[i];
                        if (!mapObj[ai.title]) { 
                            newArr.push({
                                title: ai.title, 
                                items: ai.item
                            });
                            mapObj[ai.title] = ai;
                        } else {
                            // 相同的添加在一起
                            for (var j = 0; j < newArr.length; j++) {
                                var dj = newArr[j];
                                if (dj.title == ai.title) { 
                                    dj.items.push(ai.item[0])
                                    break;
                                }
                            }
                        }
                    }
                return newArr
    }
  
console.log(a);
console.log(groups(a));

 

posted @ 2021-10-25 09:42  前端搬运工bug  阅读(142)  评论(0)    收藏  举报