如何实现repeatTwice函数:按原顺序将数组每个元素重复两次返回新数组
实现数组元素连续重复两次的函数
需求说明
- 定义名为
repeatTwice的函数,接收任意数组作为输入参数 - 处理逻辑:保留原数组的元素排列顺序,将每个原始元素连续重复罗列2次
- 输出要求:返回处理完成后的新数组,不修改原始输入数组
调用示例:输入
[4, "Bird", 42, true]调用repeatTwice,返回结果为[4, 4, "Bird", "Bird", 42, 42, true, true]
实现方案
基础循环实现(兼容性好、易读)
function repeatTwice(arr) { const res = []; for (const item of arr) { res.push(item, item); } return res; }
简洁函数式实现
利用数组flatMap方法可以直接把每个元素映射为两个元素的数组后自动打平,代码更精简:
const repeatTwice = arr => arr.flatMap(item => [item, item]);
注意事项
- 上述两种实现都不会修改传入的原数组,不会产生副作用
- 如果数组元素是对象、数组这类引用类型值,重复的是元素引用地址,如果需要独立的深拷贝副本,可以根据业务场景在push时加入深拷贝逻辑。
内容的提问来源于stack exchange,提问作者dada
相关产品推荐
相关产品推荐

