Javascript 如何将三个一维阵列转换为三维阵列

Javascript 如何将三个一维阵列转换为三维阵列,javascript,arrays,Javascript,Arrays,我必须为传单地图上的标记准备数据我的输入是: popup = ["abc", "bza", "ghh"]; myCol1 = [16.51545, 16.15454, 16.1454]; myCol2 = [80.2515, 80.1545, 80.5645]; 我需要的是: myData = [ ["abc", 16.51545, 80.2515], ["bza", 16.15454, 80.1545], ["ghh", 16.1454, 80.5645] ]; 你

我必须为传单地图上的标记准备数据我的输入是:

popup = ["abc", "bza", "ghh"];
myCol1 = [16.51545, 16.15454, 16.1454];
myCol2 = [80.2515, 80.1545, 80.5645];
我需要的是:

myData = [
    ["abc", 16.51545, 80.2515],
    ["bza", 16.15454, 80.1545],
    ["ghh", 16.1454, 80.5645]
];
你可以用

ES5同等标准:

popup.map(function(element, index) {
    return [element, myCol1[index], myCol2[index]];
});
var popup=[“abc”、“bza”、“ghh”],
myCL1=[16.51545,16.15454,16.1454],
myCL2=[80.2515,80.1545,80.5645];
var data=popup.map((e,i)=>[e,mycl1[i],mycl2[i]]);
控制台日志(数据);

document.body.innerHTML=''+JSON.stringify(数据,0,4)+''只要数组的长度始终相同,一个简单的for循环就足够了:

var myData = [];
for(var i = 0; i < popup.length; i++) {
    myData.push([popup[i], myCol1[i], myCol2[i]]);
}
var myData=[];
对于(变量i=0;i
使用和 嵌套的:

var popup=[“abc”、“bza”、“ghh”],
myCL1=[16.51545,16.15454,16.1454],
myCL2=[80.2515,80.1545,80.5645],
myData=[popup,mycl1,mycl2].reduce(函数(r,a,i){
a、 forEach(函数(b,j){
r[j]=r[j]| |[];
r[j][i]=b;
});
返回r;
}, []);

document.write(''+JSON.stringify(myData,0,4)+'')我不确定在没有解释的情况下使用lambda表达式回答问题有多安全(只是为了简洁起见…@JonathanBrooks Arrow函数非常好。为了便于理解,我还添加了等效的ES5代码
var myData = [];
for(var i = 0; i < popup.length; i++) {
    myData.push([popup[i], myCol1[i], myCol2[i]]);
}