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)

效果如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM