我有一些这样的JavaScript代码:
<script>
var nama_titik = ["titik1", "titik2"];
var lat = ["-7.0732534", "-7.0737645"];
var lon = ["110.4111171", "110.4130483"];
var locations = [
[nama_titik[0], lat[0], lon[0]]
];
document.getElementById("demo").innerHTML = locations;
</script>
如何在location
中循环索引数组,所以我没有写这样的代码:
var locations = [
[nama_titik[0], lat[0], lon[0]],
[nama_titik[1], lat[1], lon[1]],
[nama_titik[2], lat[2], lon[2]],
];
答案 0 :(得分:1)
如果我理解得很好,这就是您要寻找的-
var locations = [];
for (var i = 0; i < nama_titik.length; i++) {
locations.push([ nama_titik[i], lat[i], lon[i] ])
}
答案 1 :(得分:0)
您可以对任何数组使用循环,以从各自的索引中获取值,并在locations
变量中创建一个或多个数组。您还可以检查所有三个数组的长度,以防止任何运行时错误。
var nama_titik = ["titik1","titik2"];
var lat = ["-7.0732534","-7.0737645"];
var lon = ["110.4111171","110.4130483"];
var locations = [];
if(nama_titik.length === lat.length && lat.length === lon.length){
for(var i=0; i<nama_titik.length; i++){
var tempArr = [];
tempArr.push(nama_titik[i]);
tempArr.push(lat[i]);
tempArr.push(lon[i]);
locations.push(tempArr);
}
console.log(locations);
document.getElementById("demo").innerHTML = locations;
} else{
console.log('Incorrect data');
}
<div id ='demo'></div>
答案 2 :(得分:0)
解决此类问题的一种通用方法通常是基于Array.reduce
...
var nama_titik = ["titik1", "titik2", "foo"];
var lat = ["-7.0732534", "-7.0737645", "bar"];
var lon = ["110.4111171", "110.4130483", "baz"];
var locations = [
[ nama_titik[0], lat[0], lon[0] ],
[ nama_titik[1], lat[1], lon[1] ]
];
console.log('Array.from(locations) ... by hand : ', Array.from(locations));
function mapFromManyLists(collector, item, idx) {
var vector = [item];
collector.lists.forEach(function (list) {
vector.push(list[idx]);
});
collector.list.push(vector);
return collector;
}
locations = nama_titik.reduce(mapFromManyLists, {
lists: [lat, lon/*, as, many, lists, as, one, needs*/],
list: []
}).list;
console.log('Array.from(locations) ... by generic function : ', Array.from(locations));
.as-console-wrapper { max-height: 100%!important; top: 0; }