为了账号安全,请及时绑定邮箱和手机立即绑定

Java 脚本遍历对象数组

Java 脚本遍历对象数组

小怪兽爱吃肉 2023-05-19 17:43:05
我有从 html 表中读取的对象的 java 脚本数组,如下所示 depId代表行号, branchId代表列号和val它与复选框(vue js v-model) 3 * 3 表数据链接: permissions=   [    [{depId:1,branchId:1,val:true},{depId:1,branchId:2,val:true},{depId:1,branchId:3}],    [{depId:2,branchId:1},{depId:2,branchId:2},{depId:2,branchId:3}],    [{depId:3,branchId:1},{depId:3,branchId:2},{depId:3,branchId:3,val:true}]    ]我需要将此数据发送到 axios API,但数据应采用以下格式data[0][branches][0]=1data[0][branches][1]=2data[0][department]=1  data[1][branches][0]=3data[1][department]=3我试过这样的东西但它有问题(数据发送到错误的索引中)let data={};   permissions.forEach((row, i) => {      row.forEach((col, j) => {        if (col["val"] === true) {          data[`data[${i}][branches][${j}]`] = col.branchId;          data[`data[${i}][department]`] = col.deptId;        }      });    });        console.log(data);循环应该如何以正确的方式发送数据?目前的结果是"data[0][branches][0]": 1,  "data[0][department]": 1,  "data[0][branches][1]": 2,  "data[2][branches][2]": 3,  "data[2][department]": 3
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

您在对象中忘记了几个逗号permissions。下一个问题是您试图检查departmentIdin permissions,但它实际上就depId在那里。接下来是您不需要定义和跟踪iand j,它们在函数中作为传递给运行函数的第二个参数方便地提供给您forEach。


这是您要实现的目标的工作版本:


permissions = [

  [{

    depId: 1,

    branchId: 1,

    val: true

  }, {

    depId: 1,

    branchId: 2,

    val: true

  }, {

    depId: 1,

    branchId: 3

  }],

  [{

    depId: 2,

    branchId: 1

  }, {

    depId: 2,

    branchId: 2

  }, {

    depId: 2,

    branchId: 3

  }],

  [{

    depId: 3,

    branchId: 1

  }, {

    depId: 3,

    branchId: 2

  }, {

    depId: 3,

    branchId: 3,

    val: true

  }]

]


let data = {};

let j = 0;


permissions.forEach((row) => {

  let i = 0;

  let departmentSeen = false;


  row.forEach((col) => {

    if (col["val"] === true) {

      data[`data[${j}][branches][${i}]`] = col.branchId;

      data[`data[${j}][department]`] = col.depId;

      i++;

      departmentSeen = true;

    }

  });


  if (departmentSeen) {

    j++;

  }

});


console.log(data);


查看完整回答
反对 回复 2023-05-19
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信