In Javascript how do I detect different kinds of elements in an array containing sub arrays and single elements?
本问题已经有最佳答案,请猛点这里访问。
我得到了一个包含子数组和单个元素的数组中的数据。我不知道主数组中有多少元素是子数组,或者有多少是单个元素,或者在子数组中有多少元素,或者子数组将在主数组中。
有没有方法可以检测子数组或单个元素?
例子:
1 | array[ [1,2,3], 4, 5] |
循环和检查:
1 2 3 4 5 | [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 | [1,2,[4,5],3].map(Array.isArray); // [false, false, true, false] |
使用
1 2 3 4 5 6 7 | for(var i=0;i<your_array.length;i++){ if(your_array[i] instanceof Array){ console.log("Subarray!"); }else{ console.log("Not Subarray!"); } } |
您可以使用操作符
1 2 | typeof 1; //number typeof 'hola'; //string |
尽管你一直警告说,
在你的特定情况下
1 2 3 4 5 6 7 8 9 | [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 } }); |