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

如何按目标数组长度循环用另一数组元素填充数组?

按目标数组长度循环填充生成新数组的实现方法

需求明确:给定两个数组,以其中一个数组(如示例中的Arr1)的长度作为最终数组的长度,用另一个数组(Arr2)的元素循环填充,生成对应长度的新数组。示例中Arr1长度为5,Arr2为["R","B"],最终得到["R","B","R","B","R"]。

核心逻辑是利用取余运算实现元素的循环获取:当索引超过填充数组的长度时,取余操作会让索引回到数组起始位置,以此循环迭代。

以下是几种常用编程语言的实现方式:

Python

arr1 = ["1","2","3","4","5"]
arr2 = ["R","B"]
# 处理填充数组为空的边界情况
if not arr2:
    result = []
else:
    result = [arr2[i % len(arr2)] for i in range(len(arr1))]
print(result)  # 输出: ['R', 'B', 'R', 'B', 'R']

JavaScript

const arr1 = ["1","2","3","4","5"];
const arr2 = ["R","B"];
// 边界处理:填充数组为空时返回空数组
const result = arr2.length ? arr1.map((_, idx) => arr2[idx % arr2.length]) : [];
console.log(result); // 输出: ["R","B","R","B","R"]

Java

import java.util.ArrayList;
import java.util.List;

public class LoopFillArray {
    public static void main(String[] args) {
        String[] arr1 = {"1","2","3","4","5"};
        String[] arr2 = {"R","B"};
        List<String> result = new ArrayList<>();
        
        int fillLen = arr2.length;
        if (fillLen == 0) {
            System.out.println(result);
            return;
        }
        
        for (int i = 0; i < arr1.length; i++) {
            result.add(arr2[i % fillLen]);
        }
        System.out.println(result); // 输出: [R, B, R, B, R]
    }
}

通用注意点

  • 务必添加填充数组为空的边界判断,避免出现除以0的运行时错误;
  • 取余运算的兼容性在所有主流编程语言中都一致,核心逻辑可以轻松迁移到其他语言。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:48:14