js数据处理的那些方法

一个数据中含有不同key的数据转化为一个新数据 拆分相同key 放到不同对象中

  • 无脑版本
  created: function() {
    //   后端返回数据
    let data = [
      {
        dataTypeId: 1,
        dataTypeName: '电器',
        fileName: ['呵呵', '很好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dewfweM', 'fwefew']
      },
      {
        dataTypeId: 2,
        dataTypeName: '设备',
        fileName: ['hdosa', '很dadf好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dedewqfewqfwfweM', 'fwefdew']
      }
    ]
    // 重新提交他要的数据
    let arrwant = [
      {
        dataTypeId: 1,
        dataTypeName: '电器',
        fileName: ['呵呵', '很好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dewfweM', 'fwefew'],
        fileList: [
          {
            fileName: '呵呵',
            fileSize: '1M',
            filePath: '1dewfweM',
            dataTypeId: 1,
            dataTypeName: '电器'
          },
          {
            fileName: '很好',
            fileSize: '2M',
            filePath: 'fwefew',
            dataTypeId: 1,
            dataTypeName: '电器'
          }
        ]
      },
      {
        dataTypeId: 2,
        dataTypeName: '设备',
        fileName: ['hdosa', '很dadf好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dedewqfewqfwfweM', 'fwefdew'],
        fileList: [
          {
            fileName: 'hdosa',
            fileSize: '1M',
            filePath: '1dedewqfewqfwfweM',
            dataTypeId: 2,
            dataTypeName: '设备'
          },
          {
            fileName: '很dadf好',
            fileSize: '2M',
            filePath: 'fwefdew',
            dataTypeId: 2,
            dataTypeName: '设备'
          }
        ]
      }
    ]
    for (var i = 0; i < data.length; i++) {
      console.log(i, data[i])
      let arr = []
      let obj = {
        fileName: [],
        fileSize: [],
        filePath: []
      }
      Object.keys(obj).forEach(item => {
        console.log(item)
        data[i][item].forEach((res, index) => {
          arr[index] = {
            fileName: data[i]['fileName'][index],
            fileSize: data[i]['fileSize'][index],
            filePath: data[i]['filePath'][index],
            dataTypeId: data[i]['dataTypeId'],
            dataTypeName: data[i]['dataTypeName']
          }
          return arr
        })
      })
      data[i]['fileList'] = arr
    }
    console.log(data)
  },
  • 封装版本
在这里插入代码片
  created: function() {
    //   后端返回数据
    let data = [
      {
        dataTypeId: 1,
        dataTypeName: '电器',
        fileName: ['呵呵', '很好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dewfweM', 'fwefew']
      },
      {
        dataTypeId: 2,
        dataTypeName: '设备',
        fileName: ['hdosa', '很dadf好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dedewqfewqfwfweM', 'fwefdew']
      }
    ]
    // 重新提交他要的数据
    let arrwant = [
      {
        dataTypeId: 1,
        dataTypeName: '电器',
        fileName: ['呵呵', '很好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dewfweM', 'fwefew'],
        fileList: [
          {
            fileName: '呵呵',
            fileSize: '1M',
            filePath: '1dewfweM',
            dataTypeId: 1,
            dataTypeName: '电器'
          },
          {
            fileName: '很好',
            fileSize: '2M',
            filePath: 'fwefew',
            dataTypeId: 1,
            dataTypeName: '电器'
          }
        ]
      },
      {
        dataTypeId: 2,
        dataTypeName: '设备',
        fileName: ['hdosa', '很dadf好'],
        fileSize: ['1M', '2M'],
        filePath: ['1dedewqfewqfwfweM', 'fwefdew'],
        fileList: [
          {
            fileName: 'hdosa',
            fileSize: '1M',
            filePath: '1dedewqfewqfwfweM',
            dataTypeId: 2,
            dataTypeName: '设备'
          },
          {
            fileName: '很dadf好',
            fileSize: '2M',
            filePath: 'fwefdew',
            dataTypeId: 2,
            dataTypeName: '设备'
          }
        ]
      }
    ]
    let newData = []
    data.map(item => {
      let filelist = []
      item.fileName.map((nameItem, index) => {
        let listItem = {}
        Object.keys(item).map(smItem => {
          let a = item[smItem]
          if (item[smItem] instanceof Array) {
            listItem[smItem] = item[smItem][index]
          } else {
            listItem[smItem] = item[smItem]
          }
        })
        filelist.push(listItem)
      })
      newData.push(Object.assign(item, { filelist }))
    })
    console.log(newData)
  },

js真的需要加强~

分享出来 和我一样的小🐷🐷 大家可以一起学习 哈哈哈~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值