我需要你们的帮助。我需要从splitted string创建一个对象。让我告诉你我的代码和解释,希望你们能帮助我。 所以这是我目前的代码
for(d in data){
var item = d.split('_');
console.log(item + " " + data[d]);
if(item[0] == 'partnerX'){
//Rest of the code goes here
}else if(item[0] == 'partnerY'){
//Rest of the code goes here
}
}
我的console.log(d + " " + data[d])
for for循环是
partnerX_row1_id 10101010
partnerX_row10_id 79899899
我的console.log(d.split('_') + data[d])
是
partnerX,row1,id 10101010
partnerX,row10,id 79899899
partnerX,row11,id 99999999
partnerX,row1,name test13
partnerX,row10,name test10
partnerX,row11,name test1
partnerY,row1,id 10101010
partnerY,row10,id 79899899
partnerY,row11,id 99999999
partnerY,row1,name test12
partnerY,row10,name test77
partnerY,row11,name test889
我的问题是最终结果应该是这样的,但我只是无法弄清楚如何正确循环数据,然后将其推送到数组并将数组转换为对象或直接创建对象,这看起来像这个。
{
"partnerx": {
"partnerx_row1" : {
"id": 3456788,
"name": "creditor 1"
},
"partnerx_row10" : {
"id": 79899899,
"name": "test10"
},
"partnerx_row11" : {
"id": 99999999,
"name": "test1"
}
},
"partnery": {
"partnery_row1" : {
"id": 10101010,
"name": "test12"
},
"partnery_row10" : {
"id": 79899899,
"name": "test77"
},
"partnery_row11" : {
"id": 99999999,
"name": "test889"
}
}
}
我希望你们能帮助我。如果您需要任何其他信息,请告诉我,我会提供。提前谢谢
答案 0 :(得分:1)
这是代码。结果存储在obj。
中obj = {};
for(d in data) {
var item = d.split('_');
item[0] = item[0].toLowerCase();
if (obj[item[0]] == undefined) {
obj[item[0]] = {};
}
if (obj[item[0]][item[0] + "_" + item[1]] == undefined) {
obj[item[0]][item[0] + "_" + item[1]] = {};
}
obj[item[0]][item[0] + "_" + item[1]][item[2]] = data[d];
}