Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中,如何在包含子数组和单个元素的数组中检测不同类型的元素?_Javascript_Arrays - Fatal编程技术网

在Javascript中,如何在包含子数组和单个元素的数组中检测不同类型的元素?

在Javascript中,如何在包含子数组和单个元素的数组中检测不同类型的元素?,javascript,arrays,Javascript,Arrays,我得到的是一个包含子数组和单个元素的数组中的数据。 我不知道主数组中有多少元素是子数组,或者有多少元素是单个元素,或者子数组中有多少元素,或者子数组在主数组中的位置 有没有办法检测子阵列或单个元素 例如: array[ [1,2,3], 4, 5] 您可以使用运算符typeof typeof 1; //number typeof 'hola'; //string 尽管您在数组类型是对象中保持警告。因此,您需要使用instanceof方法(或静态方法Array.isArray(您的_变量))检

我得到的是一个包含子数组和单个元素的数组中的数据。 我不知道主数组中有多少元素是子数组,或者有多少元素是单个元素,或者子数组中有多少元素,或者子数组在主数组中的位置

有没有办法检测子阵列或单个元素

例如:

array[ [1,2,3], 4, 5]

您可以使用运算符
typeof

typeof 1; //number
typeof 'hola'; //string
尽管您在
数组类型
对象
中保持警告。因此,您需要使用
instanceof
方法(或静态方法
Array.isArray(您的_变量)
)检查该类。对于此问题,您可以阅读此问题()

在你的特殊情况下

[1, 2, 3, ['a','b']].forEach(function(element){
    if(typeof(element) === 'number'){
       //todo
    }elseif(typeof(element) === 'string'){
      //todo
    }elseif(Array.isArray(element){
        //todo array element
    }
});
循环并检查:

[1,2,[4,5],3].forEach((item, i) => {
    if (Array.isArray(item)) {
        console.log(`Item ${i} is an array!`); // Item 2 is an array!
    }
})
或映射到布尔值:

[1,2,[4,5],3].map(Array.isArray); // [false, false, true, false]

使用
实例of

 for(var i=0;i<your_array.length;i++){
        if(your_array[i] instanceof Array){
               console.log("Subarray!");
        }else{
               console.log("Not Subarray!");
        }
 }

for(var i=0;iBartek:好的-你能给我一个代码示例,说明我如何使用另一个问题和答案来检测子数组吗?循环数组?我试过了。但是,当我使用数组[0]时,我得到了1。我原以为我会得到那个子数组。但是,我只得到了1。我不必使用数组[0][0]要获得1?这一个:如果您不需要支持传统javascript引擎(真正的旧浏览器),这是正确的答案。如果您确实需要支持传统浏览器,请添加以下polyfill: