如何创建一个扁平数组的函数? Javascript中的多维数组到一维数组

时间:2016-06-12 15:19:59

标签: javascript flatten

我正在阅读ruby的数组flatten函数并在Javascript中寻找类似的功能但没有找到。所以,我自己创建了它。

    Input: [[1,2,[3]],4]
    Output : [1,2,3,4]

如果你想使用reduce / concate方法,你将无法得到多维数组的理想答案。

您认为什么是解决方案代码?!!!

1 个答案:

答案 0 :(得分:0)

所以,这是我用来解决问题的代码。

    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]