JS:编写一个具有多维数组输入的函数

时间:2018-11-08 18:21:30

标签: javascript arrays

我想输入一个数组数组,然后将它们分开。例如,我有一系列位置,例如多个经纬度坐标。 但我想编写一个循环,然后将该数组作为数组,并为所有纬度坐标和所有经度坐标使用make和array。

例如,如果我有

input = [[45,45],[35,75] [85,90]] 它会使2个数组作为我的输出 [45,35,85] 和 [45,75,90]

3 个答案:

答案 0 :(得分:0)

您可以转置数组并将latlong当作单个数组。

var input = [[45, 45], [35, 75], [85, 90]],
    [lat, long] = input.reduce((r, a) => a.map((v, i) => (r[i] || []).concat(v)), []);
    
console.log(lat);
console.log(long);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:-1)

尝试此操作,循环遍历每个坐标,然后将每个坐标的第一个值放入称为first的数组中,并将每个坐标的第二个值放入称为second的数组中。.

var input = [[45,45],[35,75],[85,90]];

function splitValues(coordinates) {
    var first = [];
    var second = [];
    for (var i = 0; i < coordinates.length; i++) {
    first.push(coordinates[i][0]);
    second.push(coordinates[i][1]);
  }
}

splitValues(input);

答案 2 :(得分:-1)

这将有助于假设您输入中始终有2个值数组,并且只需要2个结果

const array = [[45,45],[35,75],[85,90]]
let first = []
let second = []
array.forEach((item)=>{
    first.push(item[0])
  second.push(item[1])
})
console.log(first)
console.log(second)