查找嵌套数组中的每个第一个数组
我有一个函数,有时会生成一个嵌套的数组(为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。
查找另一个数组的简单recursion函数解决了这个问题。 它适用于无限嵌套的数组并使用对象types保护。
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);
希望这可以帮助 :)
循环访问数组,然后输出yourArray [0]输出第一个元素。 我相信应该工作。
我会尝试这样的事情(JS控制台生病了,所以我不能testing):
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] } } }
没有types或安全检查,我可能会用recursion的东西来replacefor循环…