我想将两个数组转换成另一种数组格式。
这是我的代码:
var array1 = [ "Kolkata", "Begumpet", "Bellary"];
var array2 = [[[20,"Kolkata1"],[10,"Kolkata2c"]],
[[0,"Begumpet1"],[10, "Begumpet2e"]],
[[30, "Bellary1"],[0, "Bellary2a"]]]
console.log(array2);
var resultvalue = [];
for (i = 0; i < array2.length; i++) {
var result = "";
var m = 0;
for (j = 0; j < array2[i].length; j++) {
if(m==0){
result += "label: '" + array1[i] + "',";
m++;
}
result += " '" + array2[i][j][1] + "': " + array2[i][j][0] + ", ";
}
resultvalue.push(result);
}
console.log(resultvalue);
它产生了我想要的结果,除了结果是一个字符串,而我需要实际的数组。
预期的输出对象应该是这样的:
dataset = [
{label:"Kolkata", "Kolkata1":20, "Kolkata2c":10},
{label:"Begumpet", "Begumpet1":0, "Begumpet2e":10},
{label:"Bellary", "Bellary1":30, "Bellary2a":0},
];
最佳答案
您可以迭代 array2
并为每个条目映射一个新对象。
var array1 = ["Kolkata", "Begumpet", "Bellary"],
array2 = [[[20, "Kolkata1"], [10, "Kolkata2c"]], [[0, "Begumpet1"], [10, "Begumpet2e"]], [[30, "Bellary1"], [0, "Bellary2a"]]],
dataset = array2.map(function (a, i) {
var o = { label: array1[i] };
a.forEach(function (b) {
o[b[1]] = b[0];
});
return o;
});
console.log(dataset);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 数组转换给出字符串而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841842/