我有一个函数,有时会生成一个嵌套数组(用于multiPolygon)。它看起来像这样:
[
[
[ 10.0, 59.0],
[ 10.0, 59.0],
[ 10.0, 59.0]
],
[
[ 10.0, 59.0],
[ 10.0, 59.0],
[ 10.0, 59.0]
]
]
因此它可以返回一个嵌套数组,里面有多个嵌套数组。但我想让我只得到第一个嵌套数组,就像这样:
[
[
[ 10.0, 59.0],
[ 10.0, 59.0],
[ 10.0, 59.0]
]
]
我在NodeJS中开发。
答案 0 :(得分:3)
寻找另一个数组的简单递归函数解决了它。它适用于无限嵌套数组并使用对象类型保护。
function getFirstArray(array){
var hasArrays = false;
for (i in array) {
if(typeof(array[i]) == "object"){
return getFirstArray(array[i]);
hasArrays = true;
break;
}
}
if(!(hasArrays)){
return array;
}
}
然后简单地用作:
var firstArray = getFirstArray(matrix);
console.log(firstArray);
希望这会有所帮助:)
答案 1 :(得分:0)
循环遍历数组,然后输出yourArray [0]以输出第一个元素。我认为应该有用。
答案 2 :(得分:0)
我会尝试这样的事情(js控制台表现不佳,所以我无法测试):
var first = function(a){
return a[1]
}
var deepFirst = function(a, depth) {
depth = depth || 0
if (a.length > 1){
return deepFirst(a, ++depth)
} else {
var result = a
for(var i = 0; i < depth i++) {
result = [result]
}
}
}
没有类型或安全检查,我可能会用递归的东西替换for循环......