如何创建用于展平数组的函数? Javascript 中的多维数组到一维数组
How to create a function for flatten an array? Multi dimensional array to one dimensional array in Javascript
我正在阅读 ruby 的数组展平函数并在 Javascript 中寻找类似的函数,但没有找到。所以,我自己创造了它。
Input: [[1,2,[3]],4]
Output : [1,2,3,4]
如果您想使用 reduce/concate 方法,您将无法获得多维数组所需的答案。
您认为的解决方案代码是什么?!!!
所以,这是我用来解决问题的代码。
var givenArr = [[1,2,[3]],4];
var outputArray = [];
function typeOf(value) {
var s = typeof value;
if (s === 'object') {
if (value)
{
if (Object.prototype.toString.call(value) == '[object Array]') {
s = 'array';
}
}else{
s = 'null';
}
}
return s;
}
function getElementFromArray(array)
{
if(array.length == 0 ) return;
for(var i = 0; i< array.length; i++ )
{
if( typeOf(array[i]) === 'array' )
{
getElementFromArray(array[i]);
}else{
outputArray.push(array[i]);
}
}
}//end getElementFromArray
getElementFromArray(givenArr);
console.log(outputArray);
//output [1,2,3,4]
我正在阅读 ruby 的数组展平函数并在 Javascript 中寻找类似的函数,但没有找到。所以,我自己创造了它。
Input: [[1,2,[3]],4]
Output : [1,2,3,4]
如果您想使用 reduce/concate 方法,您将无法获得多维数组所需的答案。
您认为的解决方案代码是什么?!!!
所以,这是我用来解决问题的代码。
var givenArr = [[1,2,[3]],4];
var outputArray = [];
function typeOf(value) {
var s = typeof value;
if (s === 'object') {
if (value)
{
if (Object.prototype.toString.call(value) == '[object Array]') {
s = 'array';
}
}else{
s = 'null';
}
}
return s;
}
function getElementFromArray(array)
{
if(array.length == 0 ) return;
for(var i = 0; i< array.length; i++ )
{
if( typeOf(array[i]) === 'array' )
{
getElementFromArray(array[i]);
}else{
outputArray.push(array[i]);
}
}
}//end getElementFromArray
getElementFromArray(givenArr);
console.log(outputArray);
//output [1,2,3,4]