当前位置: 首页 > 知识库问答 >
问题:

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

杜弘光
2023-08-01

代码如下:

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

共有2个答案

韦俊英
2023-08-01
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);
蔺敏达
2023-08-01

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 的开发体验更佳)

 类似资料:
  • 我的问题是,我试图在一个数组上迭代多次,但是,我的for循环只会在该数组上迭代一次(或者在我看来是这样),这会导致结果错误。 我试图在这个数组上循环:

  • 问题是,我可以强制在末尾填充缺少的ID吗?

  • 编写一个程序,根据CSE 1341教学大纲计算当前成绩。程序应该提示用户输入他们的名字和姓氏。然后,它将这些名称作为字符串传递给CSE1341Grade类的第二个方法。第二种方法的名称为calcGrade。此方法将提示用户输入考试分数计数、测验分数计数和实验室分数计数。 然后,它将利用重复结构根据之前输入的计数提示考试成绩、测验成绩和实验室成绩。例如,如果用户输入的考试分数计数为2;然后程序将循环

  • let arr = ['test1','test2'] let obj = { test0:'xxx'} 想通过循环arr,if判断时得到以下结果,即把数组中的元素当做obj的key加到if判断中 if( obj.test0 && obj.test1 && obj.test2){ }

  • 您好,我对jquery没有什么问题。首先,我有: 大众BORA 1.9TDI 1990 1995 奥迪A3 2.0TFSI 2006 2008 但我想实现: VW BORA 1.9TDI 1990 VW BORA 1.9TDI 1991 VW BORA 1.9TDI 1992 VW BORA 1.9TDI 1993 VW BORA 1.9TDI 1994 VW BORA 1.9TDI 1995 A

  • 我需要以这样的方式使用两个循环:外循环驱动内循环进行2、4、8、16和32次迭代的计算。 例如,如果i=2(对于外循环),则内循环将迭代4次 如果i=3,则内部循环将迭代8次,依此类推。 这就是我使用的逻辑 如果有任何建议,我将不胜感激