在不使用展平函数的情况下展平嵌套数组

时间:2017-07-20 11:48:59

标签: javascript flatten

我目前遇到了问题。我想做[[1,2,[3]],4] - > [1,2,3,4]但无法让它发挥作用。我一直得到的输出是:1,2,3,4 1,2,3 3 3 3 3 .......... 3

function flattenArray(input) {
var result = [];
console.log(input.toString());
      for(i = 0; i < input.length; i++) {
           if(input[i].constructor === Array) {
           result.push(flattenArray(input[i]));
      } else {
           result.push(input[i]);
  }
}
    return result;
}

console.log(flattenArray([[1,2,[3]],4]));

1 个答案:

答案 0 :(得分:1)

我的common.js文件中有这个。我一直都在使用它。

Array.prototype.flatten = function () {
    var ret = [];
    for (var i = 0; i < this.length; i++) {
        if (Array.isArray(this[i])) {
            ret = ret.concat(this[i].flatten());
        } else {
            ret.push(this[i]);
        }
    }
    return ret;
};

这是一个功能:

function flattenArray(input) {
    console.log(input.toString());
    var ret = [];
    for (var i = 0; i < input.length; i++) {
        if (Array.isArray(input[i])) {
            ret = ret.concat(flattenArray(input[i]));
         } else {
            ret.push(input[i]);
        }
    }
    return ret;
}