繁体   English   中英

循环遍历数组中的数组

[英]Loop through arrays within arrays

我有一个for循环,记录我的要素图层中每个要素的坐标数组。 但奇怪的是,要素图层的第33个元素是一个包含3个数组的数组 - 长度为16,58和246.如何访问这些更深层次的数组 - 并将它们记录到控制台?

在此输入图像描述

if (data.features.length > 0) {
    for(var i = 0; i < features.length; i++){
        console.log(i, features[i].geometry.coordinates)
    }
}

您可以使用如下的递归:

 function iterateArray(array) { array.forEach((item) => { if (Array.isArray(item)) { iterateArray(item); } else { console.log(item); } }); } var array = [1, 2, [3, 4, 5], [6, [7, [8, 9]]]]; iterateArray(array); 

另一个解决方案是检查数组中的Object是否是Array的实例。

如果它是另一个数组的实例,则只递归调用该函数。

解决方案如下所示:

 var arr = [1, 2, [4,5,6], [9,5,6,7]]; printArray(arr); printArray(null); function printArray(arr){ if(arr == null || arr == undefined){ return; } if(arr.length == 0){ return; } for(var i = 0; i < arr.length; i++){ if(arr[i] instanceof Array){ printArray(arr[i]); } else{ console.log(arr[i]); } } } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM