js 如何根据标识符来循环的次数?

代码如下:

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语法来写

阅读 2k
2 个回答

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 ,然后通过 babelgulpwebpack 这些工具转换(不难看出,确实 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);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题