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

基于数组位置为1-100随机数字列表循环分配颜色的技术求助

解决方案:创建打乱数组并循环分配颜色

嘿,这问题其实很容易解决,完全不用纠结多维数组!咱们一步步来实现:

核心思路

我们需要完成两个关键步骤:

  1. 生成1到100的数组并随机打乱
  2. 根据元素的位置(第1位Red、第2位Yellow、第3位White,循环往复)给每个元素分配颜色

这里的关键是用**模运算(%)**来判断当前位置属于循环中的哪一个——因为每3个位置为一个周期,用索引对3取余就能快速匹配对应的颜色。


示例实现(Python)

import random

# 1. 创建1-100的数组并打乱
num_array = list(range(1, 101))
random.shuffle(num_array)

# 2. 定义颜色循环规则
color_cycle = ['Red', 'Yellow', 'White']

# 3. 为每个元素分配颜色,用元组存储(数字, 颜色)
colored_array = []
for idx, num in enumerate(num_array):
    # 索引从0开始,0对应第1位,取余3得到循环位置
    color = color_cycle[idx % 3]
    colored_array.append( (num, color) )

# 打印前10个看看效果
print(colored_array[:10])

示例实现(JavaScript)

// 1. 创建1-100的数组
const numArray = Array.from({length: 100}, (_, i) => i + 1);

// 2. 随机打乱数组
numArray.sort(() => Math.random() - 0.5);

// 3. 定义颜色循环规则
const colorCycle = ['Red', 'Yellow', 'White'];

// 4. 为每个元素分配颜色,返回包含对象的数组
const coloredArray = numArray.map((num, idx) => {
    const color = colorCycle[idx % 3];
    return { number: num, color: color };
});

// 打印前10个看看效果
console.log(coloredArray.slice(0, 10));

关于多维数组的疑问

其实你完全可以用多维数组(比如每个子数组存[数字, 颜色]),但上面的实现用元组(Python)或对象(JS)会更直观,也更符合日常开发的习惯——我们只需要把数字和它对应的颜色关联起来,没必要刻意用多维数组的结构。当然如果你偏好多维数组,只需要把元组/对象改成数组就行,比如Python里append( [num, color] ),JS里return [num, color]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:48:02