You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数组A的元素复制并重复多次,生成扩展后的新数组B?

数组元素重复扩展实现方案

下面提供几种主流编程语言的实现方式,核心逻辑都是遍历原数组的每个元素,将其重复指定次数(这里是4次)后添加到目标数组中:

Python 实现

利用列表推导式快速生成目标数组:

A = ['i1', 'i2', 'i3']
B = [item for item in A for _ in range(4)]
print(B)  # 输出: ['i1', 'i1', 'i1', 'i1', 'i2', 'i2', 'i2', 'i2', 'i3', 'i3', 'i3', 'i3']

通过嵌套循环的列表推导,先遍历原数组的每个元素,再将每个元素重复4次加入新列表。

JavaScript 实现

提供两种简洁的实现方式:

const A = ['i1', 'i2', 'i3'];

// 方法1:使用 flatMap 自动扁平化数组
const B = A.flatMap(item => Array(4).fill(item));

// 方法2:map 生成重复数组后展开合并
const B2 = [].concat(...A.map(item => Array(4).fill(item)));

console.log(B);  // 输出: ['i1', 'i1', 'i1', 'i1', 'i2', 'i2', 'i2', 'i2', 'i3', 'i3', 'i3', 'i3']
  • flatMap 会将每个元素映射为包含4个自身的数组,同时自动将嵌套数组扁平化;
  • 第二种方法先通过map为每个元素生成重复数组,再用扩展运算符展开后合并。

Java 实现

可以用Stream流简化代码,也可以用传统循环:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class ArrayExpand {
    public static void main(String[] args) {
        List<String> A = List.of("i1", "i2", "i3");

        // 方法1:Stream 流实现
        List<String> B = A.stream()
                .flatMap(item -> List.of(item, item, item, item).stream())
                .collect(Collectors.toList());

        // 方法2:普通循环实现
        List<String> B2 = new ArrayList<>();
        for (String item : A) {
            for (int i = 0; i < 4; i++) {
                B2.add(item);
            }
        }

        System.out.println(B);  // 输出: [i1, i1, i1, i1, i2, i2, i2, i2, i3, i3, i3, i3]
    }
}
  • Stream流通过flatMap将每个元素转换为包含4个自身的流,再收集为列表;
  • 循环方法直接遍历原数组,每个元素重复添加4次到目标列表。

C# 实现

借助LINQ或循环实现:

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
    static void Main() {
        List<string> A = new List<string> { "i1", "i2", "i3" };

        // 方法1:LINQ 的 SelectMany 合并序列
        List<string> B = A.SelectMany(item => Enumerable.Repeat(item, 4)).ToList();

        // 方法2:普通循环实现
        List<string> B2 = new List<string>();
        foreach (string item in A) {
            for (int i = 0; i < 4; i++) {
                B2.Add(item);
            }
        }

        Console.WriteLine(string.Join(", ", B));  // 输出: i1, i1, i1, i1, i2, i2, i2, i2, i3, i3, i3, i3
    }
}
  • SelectMany会将每个元素重复4次的序列合并为一个连续序列;
  • 循环方法逻辑直观,遍历每个元素并重复添加。

内容的提问来源于stack exchange,提问作者Ronald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:48:27