数据拼接一:
原始数据为对象

{ 0grade: "" 0home: "萍钢四切(边部钩痕)" 0price: "3200" 0productName: "普板" 0remark: "" 1grade: "" 1home: "萍钢四切(边部钩痕)" 1price: "3201" 1productName: "普板" 1remark: "" 3grade: "" 3home: "萍钢四切(边部钩痕)" 3price: "3201" 3productName: "普板" 3remark: "" }
要求数据为数组

[ { grade: "", home:"萍钢四切(边部钩痕)", price: "3021", productName: "普板", remark: "", },{ grade: "", home:"萍钢四切(边部钩痕)", price: "3021", productName: "普板", remark: "", }, { grade: "", home:"萍钢四切(边部钩痕)", price: "3021", productName: "普板", remark: "", } ]
解决方案一:

getTableArry (data) { let arry = []; let obj = {}; for(let key in data) { let curKey = parseInt(key.replace(/[^0-9]+/g, '')); // 获取key里的数字标记 let keyName =key.replace(/[^a-zA-Z]+/g, ''); // 获取 key里的字段名称 if(!isNaN(curKey)){// 过滤掉不包含数字标记的 obj = { 'productName':data[`${curKey}productName`], 'spec':data[`${curKey}spec`], 'grade':data[`${curKey}grade`], 'home':data[`${curKey}home`], 'weight':data[`${curKey}weight`], 'warehouse':data[`${curKey}warehouse`], 'price':data[`${curKey}price`], 'remark':data[`${curKey}remark`], } if(`${curKey}` in arry) {// 过滤掉已经追加到arry的obj }else { arry.push(obj) } } } return arry; }
解决方案二:
ps: obj 对象拷贝,需放在里面,每次重新初始化

getTableArry (data, o) { let arry = []; for(let key in data) { let curKey = parseInt(key.replace(/[^0-9]+/g, '')); // 获取key里的数字标记 let keyName =key.replace(/[^a-zA-Z]+/g, ''); // 获取 key里的字段名称 if(!isNaN(curKey)){// 过滤掉不包含数字标记的 if(`${curKey}` in arry) {// 过滤掉已经追加到arry的obj }else { let obj = {}; for (let i in o){ obj[i] = data[`${curKey}${i}`] } arry.push(obj) } } } return arry; }