Javascript 如何从普通数组创建多维数组
在表单提交之后,我有一个json数组,使用formSerialize函数如下Javascript 如何从普通数组创建多维数组,javascript,html,json,multidimensional-array,Javascript,Html,Json,Multidimensional Array,在表单提交之后,我有一个json数组,使用formSerialize函数如下 [ {"name":"client_management-testmonitoring","value":"0"}, {"name":"client_operations-testmonitoring","value":"0"}, {"name":"tpl_management-testmonitoring","value":"0"}, {"name":"tpl_oper
[
{"name":"client_management-testmonitoring","value":"0"},
{"name":"client_operations-testmonitoring","value":"0"},
{"name":"tpl_management-testmonitoring","value":"0"},
{"name":"tpl_operations-testmonitoring","value":"0"},
{"name":"channel_partner-testmonitoring","value":"0"},
{"name":"operator-testmonitoring","value":"0"},
{"name":"financier-testmonitoring","value":"0"},
{"name":"client_management-test_monitoring_2","value":"0"},
{"name":"client_operations-test_monitoring_2","value":"0"},
{"name":"tpl_management-test_monitoring_2","value":"0"},
{"name":"tpl_operations-test_monitoring_2","value":"0"},
{"name":"channel_partner-test_monitoring_2","value":"0"},
{"name":"operator-test_monitoring_2","value":"0"},
{"name":"financier-test_monitoring_2","value":"0"},
{"name":"client_management-test_monitoring_3","value":"0"},
{"name":"client_operations-test_monitoring_3","value":"0"},
{"name":"tpl_management-test_monitoring_3","value":"0"},
{"name":"tpl_operations-test_monitoring_3","value":"0"},
{"name":"channel_partner-test_monitoring_3","value":"0"},
{"name":"operator-test_monitoring_3","value":"0"},
{"name":"financier-test_monitoring_3","value":"0"}
]
我需要这样转换这个数组:
[
{
"role": [
{
"role_name": "client_management",
"report_name": [
{
"test_monitoring_1": 1,
"test_monitoring_2": 1,
"test_monitoring_3": 0
}
]
}
]
},
{
"role": [
{
"role_name": "financier",
"report_name": [
{
"test_monitoring_1": 1,
"test_monitoring_2": 0,
"test_monitoring_3": 1
}
]
}
]
}
]
我正在尝试这段代码来获取多维数组
var formData = $('#' + reportType).serializeArray(),matrix_array =[];
for (var u = 0; u < formData.length; u++) {
for (var user in formData[u])
{
if (user == 'name') {
var matrix_name_n = formData[u][user],
matrix_name_a = matrix_name_n.split('-'),
role_name = matrix_name_a[0],
parameter_name = matrix_name_a[1];
var matrix_array_2 = [];
}
if (user == 'value') {
var matrix_param_value = formData[u][user], matrix_array_3 = [matrix_param_value];
}
}
var matrix_array2 = {};
var matrix_array2 = {};
matrix_array2["role"] = role_name;
matrix_array2[parameter_name] = matrix_param_value;
matrix_array_2.push(matrix_array2);
matrix_array.push(matrix_array_2);
var insert_matrix = {};
insert_matrix = JSON.stringify(formData);
}
var formData=$('#'+reportType).serializeArray(),matrix_array=[];
对于(var u=0;u
但是我没有得到预期的结果。请帮助某人解决此问题您可以用减号分割名称,并将第一部分用作内部对象的
角色名称
,第二部分用作内部对象的报告名称
属性
var data=[{name:“client_management-testmonitoring”,value:0},{name:“client_operations-testmonitoring”,value:0},{name:“tpl_management-testmonitoring”,value:0},{name:“channel_partner-testmonitoring”,value:0},{name:“operator testmonitoring”,value:0},{name:“金融家测试监控”,值:0},{name:“客户管理-测试监控2”,值:0},{name:“客户操作-测试监控2”,值:0},{name:“tpl管理-测试监控2”,值:0},{name:“tpl操作-测试监控2”,值:0},{name:“渠道合作伙伴-测试监控2”,值:0},{name:“操作员-测试-测试-监控2”,值:0},{name:“金融家-测试-监控2”,值:0},{name:“客户-管理-测试-监控3”,值:0},{name:“客户-操作-测试-监控3”,值:0},{name:“tpl-测试-监控3”,值:0},{name:“tpl-操作-测试-监控3”,值:0},{name:“渠道(合作伙伴)测试(监控)测试(监控)测试(监控)测试(监控)测试(监控)测试(监控)测试(监控)测试(监控)测试,
结果=数据.reduce(函数(散列){
返回函数(r,a){
var parts=a.name.split('-');
如果(!散列[parts[0]]){
散列[parts[0]]={};
r[0].role.push({role\u name:parts[0],report\u name:[hash[parts[0]]]});
}
如果(!parts[1]。匹配(/\d$/){
第[1]部分=‘测试_监控_1’;
}
散列[parts[0]][parts[1]]=a.value;
返回r;
}
}(Object.create(null)),[{report_name:“monitoring”,role:[]}]);
console.log(结果);
作为控制台包装{max height:100%!important;top:0;}
请添加想要的结果。{“角色”:[{role\u name:“客户管理”,报告名称:[{test\u monitoring\u 1:1,test\u monitoring\u 2:1,test\u monitoring\u 3:0}]},{“角色”:[{角色名称:“金融家”,报告名称:[{test_monitoring_1:1,test_monitoring_2:0,test_monitoring_3:1}]}编辑问题并将结果添加到那里。正确设置问题的格式,它可以帮助我们解决问题@SoumyaSarasando如果没有给出数字,您需要名称后面的问题test\u monitoring\u 1:
?我还需要一个帮助。我需要使用节点js将此数组插入mongodb。它没有正确插入。$.ajax({type:post”,url:“/insert/”+id,数据类型:“json”,数据:结果,成功:函数(res){});我正在使用代码插入我不知道mongo和jquery。你可以看看这里:你可以问一个关于mongodb问题的新问题。我还需要一个帮助[{“report_name”:“monitoring”角色“:[{”角色名称“:”客户机管理“,”参数名称“:[{”监控“:”0“,”测试监控“:”2“:”0“,”测试监控“:”3“:”0“,”,{”角色名称“:”客户机操作“,”参数名称“:[{”监控“:”0“,”测试监控“:”2“:”0“,”测试监控“:”3“:”0“,”,{”角色名称“:”操作员“,”参数名称“:”监控“:”0“,”测试监控“:”2“:”0“,”test_monitoring_3:“0”}],:[{“role_name:“financiator”,“parameter_name:[{“monitoring:“0”,“test_monitoring_2:“0”,“test_monitoring_3:“0”}]}]我需要这样的数组。