如何将函数内部数组的元素推入空全局数组,避免生成嵌套数组
你当前的写法会得到二维数组,是因为push()方法会把传入的参数整体作为单个元素插入目标数组,你传入了一整个数组,自然就会产生嵌套结构。
想要实现把内部数组的元素逐一插入全局数组,最简单的修改方式是使用ES6的扩展运算符...把内部数组展开为独立参数传入push():
const testArrayTwo = []; console.log(testArrayTwo); function testSomething() { const testArray = ["1", "2", "3"]; console.log(testArray); // 改为用扩展运算符展开数组后push testArrayTwo.push(...testArray); }
调用testSomething()后输出testArrayTwo就能得到你预期的["1", "2", "3"]结果。
如果需要兼容不支持ES6语法的旧环境,也可以使用apply方法实现同样效果:
Array.prototype.push.apply(testArrayTwo, testArray);
内容的提问来源于stack exchange,提问作者Nick94
相关产品推荐
相关产品推荐

