如何按指定次数将源数组元素动态推入目标数组?
实现方案
方案1:基础for循环(兼容性最好,易读性最高)
这是所有JS环境都支持、逻辑最直观的实现方式:
let length = 2; let data1 = ['Label1', 'Label2', 'Label3']; let data2 = []; for (let i = 0; i < length; i++) { // 展开data1的所有元素逐个推入data2 data2.push(...data1); }
运行后data2就会输出你期望的['Label1', 'Label2', 'Label3', 'Label1', 'Label2', 'Label3']。
方案2:单行函数式实现(适合现代JS环境)
不需要兼容旧环境的场景下,用Array.from+flat可以无需手动写循环完成需求:
data2 = Array.from({ length }, () => [...data1]).flat();
原理是先基于指定的length生成一个包含N份data1的二维数组,再通过flat()拍平为一维数组。
方案3:fill简化写法(ES6+可用)
ES6及以上版本还可以用fill进一步简化代码:
data2 = new Array(length).fill(data1).flat();
内容的提问来源于stack exchange,提问作者devin liu
相关产品推荐
相关产品推荐

