基于数组位置为1-100随机数字列表循环分配颜色的技术求助
解决方案:创建打乱数组并循环分配颜色
嘿,这问题其实很容易解决,完全不用纠结多维数组!咱们一步步来实现:
核心思路
我们需要完成两个关键步骤:
- 生成1到100的数组并随机打乱
- 根据元素的位置(第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
相关产品推荐
相关产品推荐

