数组对象分组
原数据:
结果:
/** * 数组对象 */ 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));