数组的降维与升维方法

数组的降维与升维方法

数组的降维

 <script>
 		// 二维数组降维
      var arr = [
           [12, 78, 56],
           [78, 89],
           [2, 3]
       ];
       var arrNew = [];
       arr.forEach(item => {
           arrNew.push(...item);
       })
       console.log(arrNew);


       var arr1 = [12, 78, [45, 89, 39], 78, 15, [8, 5]];
       var arr1New = [];
       arr1.forEach(item => {
       // 判断是否是数组
           if (Array.isArray(item)) {
               arr1New.push(...item);
           } else {
               arr1New.push(item);
           }
       })
       console.log(arr1New);
   </script>

数组的升维

 //数组的降维 ,多用于对后端数据的重新整理
        var arr = [{
            type: '电子产品',
            name: 'iPhone',
            price: 8888
        }, {
            type: '家具',
            name: ' 桌子',
            price: 100
        }, {
            type: '食品',
            name: '瓜子',
            price: 10
        }, {
            type: '家具',
            name: '椅子',
            price: 380
        }, {
            type: '电子产品',
            name: '小米手机',
            price: 1380
        }, {
            type: '食品',
            name: '辣条',
            price: 5
        }, {
            type: '食品',
            name: '咖啡',
            price: 50
        }];
        // 声明一个空对象,及空数组
        var obj = {};
        var arrNew = [];
        arr.forEach(item => {
                if (obj[item.type] == undefined) { // 第一次出现 判断对象中是否含有
                    obj[item.type] = 1; //赋值
                    arrNew.push({
                        type: item.type,
                        data: [item]
                    })
                } else { // 不是第一次出现
                    // 判断当前的item2属于arrNew中的那一类
                    arrNew.forEach((item2, index2) => {
                        if (item.type == item2.type) {
                            arrNew[index2].data.push(item2) //在该对象的data中添加
                        }
                    })
                }
            })

猜你喜欢

转载自blog.csdn.net/qq_47008195/article/details/107966336