您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页Javascript对象数组根据其中某一个相同的对象属性进行重新分类

Javascript对象数组根据其中某一个相同的对象属性进行重新分类

来源:叨叨游戏网
Javascript对象数组根据其中某⼀个相同的对象属性进⾏重新分

话不多说上代码

这这个demo⾥ 我们根据hobby进⾏分类 筛选出mj 组成新的对象数组

var huaji = [{ name: 'a', hobby: '1', mj: '12' }, { name: 'a', hobby: '2', mj: '13' }, { name: 'a', hobby: '3', mj: '14' }, { name: 'a', hobby: '4', mj: '15' }, { name: 'a', hobby: '5', mj: '162' }, { name: 'a', hobby: '6', mj: '15' }, { name: 'q', hobby: '1', mj: '13' }, { name: 'q', hobby: '2', mj: '16' }, { name: 'q', hobby: '3', mj: '17' }, { name: 'q', hobby: '4', mj: '19' }, { name: 'q', hobby: '5', mj: '16' }, { name: 'x', hobby: '1', mj: '13' }, { name: 'x', hobby: '2', mj: '13' }, { name: 'x', hobby: '3', mj: '16' }, { name: 'x', hobby: '4', mj: '17' }]

let tempArr = []; var newArr = [];

for (let i = 0; i < huaji.length; i++) {

if (tempArr.indexOf(huaji[i].hobby) === -1) { newArr.push({

hobby: huaji[i].hobby, mj: [huaji[i].mj] });

tempArr.push(huaji[i].hobby); } else {

for (let j = 0; j < newArr.length; j++) { if (newArr[j].hobby == huaji[i].hobby) { newArr[j].mj.push(huaji[i].mj); break; } } } }

console.log(newArr);

// 优化版本-------------------------------

let tempArr = [];var newArr = [];

huaji.forEach((i, index) => {

  if (tempArr.indexOf(i.hobby) === -1) {     newArr.push({      hobby: i.hobby,      mj: [i.mj]    });

    tempArr.push(i.hobby);  } else {

    newArr[tempArr.indexOf(i.hobby)].mj.push(i.mj)  }});

console.log(newArr)

效果如下

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务