一维二维数组对象转化

58 阅读2分钟

一维数组对象转化成二维数组

目标

image.png

 var data = [
        { name: "小明", age: 18, sex: "男" },
        { name: "小明"age: 28, sex: "女"},
        { name: "小红" age: 38, ses: "女"}
    ]
 
    function arry(data, list){
       // 最终要返回的二维数组
        let newArr = []
        sourceData.forEach(function(item,index){
           // 一级数组内包含的二级数组
           let arr = []
            // 遍历键值数组
            Object.keys(item).forEach(function(key){
              // 判断字段是否包含当前key值
              if(list.includes(key)){                 
                   arr.push(item[key])
                }
            })
            newArr.push(arr)
        })
        return newArr  
    }
    
    console.log(arry(data, ['name','age']))//[["小明",18],["小红",28],["小蓝",22]]

image.png

二维数组转化成一维数组对象

目标: 将fgl、fgs单独抽离出来放在各自的数组中(如下所示)

fgl :  [
      { city: '杭州', value: 100, provice: '浙江杭州' },
      { city: '成都', value: 99, provice: '四川成都' },
      { city: '苏州', value: 80, provice: '江苏苏州' },
      { city: '北京', value: 100, provice: '北京' },
      { city: '上海', value: 99, provice: '上海' },
      { city: '广州', value: 80, provice: '深圳广州' },
      { city: '武汉', value: 77, provice: '湖北武汉' },
      { city: '襄阳', value: 99, provice: '湖北襄阳' },
      { city: '宜昌', value: 80, provice: '湖北宜昌' },
];
fgs:[
 { city: '杭州', value: 88, provice: '浙江杭州' },
 { city: '成都', value: 89, provice: '四川成都' },
 { city: '苏州', value: 90, provice: '江苏苏州' },
 { city: '北京', value: 102, provice: '北京' },
 { city: '上海', value: 79, provice: '上海' },
 { city: '广州', value: 90, provice: '深圳广州' },
 { city: '武汉', value: 102, provice: '湖北武汉' },
 { city: '襄阳', value: 79, provice: '湖北襄阳' },
 { city: '宜昌', value: 90, provice: '湖北宜昌' }
]

 

var data = [        {          fgl: [            { city: '杭州', value: 100, provice: '浙江杭州' },            { city: '成都', value: 99, provice: '四川成都' },            { city: '苏州', value: 80, provice: '江苏苏州' },          ],
          fgs: [
            { city: '杭州', value: 88, provice: '浙江杭州' },
            { city: '成都', value: 89, provice: '四川成都' },
            { city: '苏州', value: 90, provice: '江苏苏州' },
          ],
        },
        {
          fgl: [
            { city: '北京', value: 100, provice: '北京' },
            { city: '上海', value: 99, provice: '上海' },
            { city: '广州', value: 80, provice: '深圳广州' },
          ],
          fgs: [
            { city: '北京', value: 102, provice: '北京' },
            { city: '上海', value: 79, provice: '上海' },
            { city: '广州', value: 90, provice: '深圳广州' },
          ]
        },
        {
          fgl: [
            { city: '武汉', value: 77, provice: '湖北武汉' },
            { city: '襄阳', value: 99, provice: '湖北襄阳' },
            { city: '宜昌', value: 80, provice: '湖北宜昌' },
          ],
          fgs: [
            { city: '武汉', value: 102, provice: '湖北武汉' },
            { city: '襄阳', value: 79, provice: '湖北襄阳' },
            { city: '宜昌', value: 90, provice: '湖北宜昌' },
          ],
        }
      ]
var arr=[],newArr=[];
  for (var i = 0; i < data.length; i++) {
        arr.push(data[i].fgl)//二维数组[[],[],[]]
        arry.push(data[i].fgs)//二维数组
      }
        initFgl(arr)
       function initFgl(arr) {
        // 循环二维数组
        for (var j = 0; j < arr.length; j++) {
        //循环二维数组的每一个子项
          for (var t = 0; t < arr[j].length; t++) {
            newArr.push(arr[j][t])//二维数组转化成一维数组对象[{},{}]
          }
        }
       
      }
ps:fgs 二维数组转化成一位数组对象,也是同样做法

image.png