当前位置: 首页 > 知识库问答 >
问题:

javascript - js for循环怎么实现如下输出?

公羊浩阔
2024-03-27

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一组}

共有3个答案

岳劲
2024-03-27
let arr1 = new Array(10).fill(0); // 创建长度为10的数组,并填充为0let 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]
徐鑫鹏
2024-03-27
console.log(new Array(10).fill(0).map((_, i) => Math.ceil((i + 1) / 3)))console.log(new Array(10).fill(0).map((_, i) => (i % 3) + 1))
孔睿
2024-03-27

要实现这样的输出,你可以通过嵌套循环来实现。外层循环控制组数,内层循环控制每组内的数字。下面是一个示例代码,展示了如何使用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一组循环输出的效果。

 类似资料: