代码如下:
var arr = [{caseName: "2023-A0201-00002-0202", t_ProductModel: "安泰636", t_Remark: "无", t_stutasbox: "1111", t_syDate: "2023年07月31日", t_syr: "http://baidu.com/user/2017690592034193337/sign.png", t_ypys: "白色", ypgg: "硬包装300mL", ypsl: '12' }, {caseName: "2023-A0201-00002-0202", t_ProductModel: "安泰636", t_Remark: "无", t_stutasbox: "1111", t_syDate: "2023年07月31日", t_syr: "http://baidu.com/user/2017690592034193337/sign.png", t_ypys: "白色", ypgg: "硬包装300mL", ypsl: '56' }]
ypsl是标识符,需求是ypsl有多少个就循环多少个,比如ypsl是56,形成56个对象,已json格式来装,数据都一样的,
大佬们,请问这样的数据来组装怎么弄呢
用es5语法来写
es5
:
var result = []; arr.forEach(function(obj) { var count = parseInt(obj.ypsl); // 将ypsl转换为数值型 for (var i = 0; i < count; i++) { var newObj = { caseName: obj.caseName, t_ProductModel: obj.t_ProductModel, t_Remark: obj.t_Remark, t_stutasbox: obj.t_stutasbox, t_syDate: obj.t_syDate, t_syr: obj.t_syr, t_ypys: obj.t_ypys, ypgg: obj.ypgg, ypsl: obj.ypsl }; result.push(newObj); // 将新对象添加到结果数组中 } }); var jsonResult = JSON.stringify(result); // 将结果数组转换为JSON格式字符串 console.log(jsonResult);
es6
:
const result = []; arr.forEach(obj => { const { ypsl, ...other } = obj; for (let i = 0; i < parseInt(ypsl); i++) { result.push({ ...other, ypsl }); } }); const jsonResult = JSON.stringify(result) console.log(jsonResult);
正常如果部署环境要 es5
开发环境也可以写 es6
,然后通过 babel
、gulp
、webpack
这些工具转换(不难看出,确实 es6
的开发体验更佳)
var newArr = []; for (var i = 0; i < arr.length; i++) { var obj = arr[i]; var count = parseInt(obj.ypsl, 10); for (var j = 0; j < count; j++) { var newObj = JSON.parse(JSON.stringify(obj)); newArr.push(newObj); } } console.log(newArr);