在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: