js for循环怎么实现如下输出
let arr = new Array(10)
for(let i = 0; i < arr.length; i++){
// 循环打印输出如下
// [1,1,1,2,2,2,3,3,3,4] 三个三个一组
// [1,2,3,1,2,3,1,2,3,1] 1 2 3一组
}
js for循环怎么实现如下输出
let arr = new Array(10)
for(let i = 0; i < arr.length; i++){
// 循环打印输出如下
// [1,1,1,2,2,2,3,3,3,4] 三个三个一组
// [1,2,3,1,2,3,1,2,3,1] 1 2 3一组
}
要实现这样的输出,你可以通过嵌套循环来实现。外层循环控制组数,内层循环控制每组内的数字。下面是一个示例代码,展示了如何使用JavaScript的for循环来实现这两种输出:
let arr = new Array(10);
// 输出 [1,1,1,2,2,2,3,3,3,4]
for (let i = 1; i <= 4; i++) {
for (let j = 0; j < 3 && i <= 4; j++) {
arr[j + (i - 1) * 3] = i;
}
}
console.log(arr); // [1, 1, 1, 2, 2, 2, 3, 3, 3, 4]
// 重置数组
arr = new Array(10);
// 输出 [1,2,3,1,2,3,1,2,3,1]
for (let i = 0; i < 10; i++) {
arr[i] = Math.ceil((i + 1) / 3);
}
console.log(arr); // [1, 2, 3, 1, 2, 3, 1, 2, 3, 1]
在第一个输出中,外层循环控制从1到4的循环,内层循环则在每次外层循环时,将当前循环变量i
的值赋给数组arr
的相应位置,位置计算方式为(i - 1) * 3 + j
,这样就实现了每三个元素为一组,每组元素值相同的输出。
在第二个输出中,使用Math.ceil((i + 1) / 3)
来计算每个位置的值。这个表达式的意思是将当前位置i
加1后除以3,并使用Math.ceil
函数向上取整。由于i
从0开始,所以前三个位置的值为1,接下来的三个位置的值为2,以此类推,实现了1、2、3一组循环输出的效果。
let arr1 = new Array(10).fill(0); // 创建长度为10的数组,并填充为0
let arr2 = new Array(10).fill(0);
// 第一种情况:三个三个一组
for (let i = 0; i < arr1.length; i++) {
arr1[i] = Math.floor(i / 3) + 1; // 通过除以3取整来确定每组的数字
}
console.log(arr1); // 输出 [1, 1, 1, 2, 2, 2, 3, 3, 3, 4]
// 第二种情况:1 2 3一组
for (let i = 0; i < arr2.length; i++) {
arr2[i] = (i % 3) + 1; // 使用取余运算确定每组的数字
}
console.log(arr2); // 输出 [1, 2, 3, 1, 2, 3, 1, 2, 3, 1]
根据你的需求,可以编写以下两种不同逻辑的JavaScript for循环实现:
情况一:输出[1,1,1,2,2,2,3,3,3,4]
let arr = new Array(10);
let groupNum = 0;
for (let i = 0; i < arr.length; i++) {
arr[i] = Math.floor((i / 3) + 1); // 计算索引对应组内的数字
}
console.log(arr);
情况二:输出[1,2,3,1,2,3,1,2,3,1]
let arr = new Array(10);
let cycleLength = 3;
for (let i = 0; i < arr.length; i++) {
arr[i] = (i % cycleLength) + 1; // 计算索引模3的结果加1,得到1到3的循环数字
}
console.log(arr);
在这两种情况下,我们都没有直接对数组进行初始化,而是通过循环直接修改数组元素的值,达到你所需要的效果。第一种情况是根据索引除以3取整数部分加1得到结果,第二种情况是根据索引对3取模后加1得到循环数字。
8 回答6k 阅读✓ 已解决
9 回答9.4k 阅读
6 回答5k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
5 回答7.3k 阅读✓ 已解决