在JavaScript中,你可以使用不同的方法来生成你提到的数组。以下是两种不同的方法,分别生成 [1,1,1,2,2,2,3,3,3,4] 和 [1,2,3,1,2,3,1,2,3,1]。
[1,1,1,2,2,2,3,3,3,4]这个数组的特点是每个数字重复3次,最后一个数字只出现一次。你可以使用 Array.from 和 flatMap 来实现:
const result = Array.from({ length: 4 }, (_, i) =>
i === 3 ? [i + 1] : Array(3).fill(i + 1)
).flat();
console.log(result); // 输出: [1,1,1,2,2,2,3,3,3,4]
解释:
- Array.from({ length: 4 }, (_, i) => ...) 创建一个长度为4的数组,i 是索引。
- i === 3 ? [i + 1] : Array(3).fill(i + 1) 对于前3个索引,生成一个包含3个相同数字的数组,最后一个索引生成一个只包含一个数字的数组。
- flat() 将嵌套数组扁平化。
[1,2,3,1,2,3,1,2,3,1]这个数组的特点是 1,2,3 重复3次,最后再加一个 1。你可以使用 Array.from 和 map 来实现:
const result = Array.from({ length: 10 }, (_, i) => (i % 3) + 1);
console.log(result); // 输出: [1,2,3,1,2,3,1,2,3,1]
解释:
- Array.from({ length: 10 }, (_, i) => ...) 创建一个长度为10的数组,i 是索引。
- (i % 3) + 1 通过取模运算 i % 3 来生成 1,2,3 的循环。
[1,1,1,2,2,2,3,3,3,4],你可以使用 Array.from 和 flatMap 来生成。[1,2,3,1,2,3,1,2,3,1],你可以使用 Array.from 和 map 来生成。这两种方法都非常简洁且高效,适合处理类似的数组生成需求。