一个数据中含有不同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真的需要加强~
分享出来 和我一样的小🐷🐷 大家可以一起学习 哈哈哈~