qinguangcan 发表于 2023-4-10 22:46

js怎么实现数组轮询6次后输出再接着轮训输出直到轮询完毕

本帖最后由 qinguangcan 于 2023-4-11 09:51 编辑

数组里有多行,数量不固定
一次输出太多了,就想轮询6次行后先输出,再接着轮询下面的
直到轮询完毕。
不知道怎么写,求大神指教。

感谢各位大神,有了这么多答案,每条都可以,不好采纳啊。只能下午下班回家结合源码运行后再采纳了。

Xrhello 发表于 2023-4-10 22:46

使用一个for循环来遍历数组,每次输出6个元素,然后再继续遍历直到数组遍历完毕.示例代码:
let arr = ;
for (let i = 0; i < arr.length; i += 6) {
    console.log(arr.slice(i, i + 6));
}

MakoStar 发表于 2023-4-11 04:18

来学习学习,看看我的答辩:
const arr = ;

function test(arr) {
    const arrIterator = arr.entries();
    return function test2() {
      let timer = setTimeout(() => {
            for (let i = 6; i > 0; i--) {
                const resultArr = arrIterator.next().value;
                if (resultArr === undefined) {
                  clearTimeout(timer);
                  return;
                };
                console.log(resultArr);
            }
            console.log("-------------------");
            clearTimeout(timer);
            test2()
      }, 3000);
    };
}

test(arr)()

cnwutianhao 发表于 2023-4-11 08:25

```javascript
const arr = [
,
,
,
,
,

];

let counter = 0;

for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
    console.log(arr);
   
    counter++;
    if (counter === 6) {
      console.log('Output');
      counter = 0;
    }
}
}

// 如果最后一次遍历不足6个元素,也需要输出一次
if (counter !== 0) {
console.log('Output');
}
```

qq231 发表于 2023-4-11 09:01

本帖最后由 qq231 于 2023-4-11 09:02 编辑

let arr=
let count=0
while (arr.length>0){
let item=arr.shift();//取数组第一个
count++;
if(count==7){
console.log('输出结果',count)
count=0;
}
}
console.log('轮询完毕')

bclx 发表于 2023-4-11 09:02

您可以使用一个计数器来跟踪已经轮询的次数,并在达到特定阈值时输出数组。然后重置计数器并继续进行轮询直到完成。

以下是一个示例代码:

```javascript
let counter = 0;
const threshold = 6;
const arr = ;

function pollArray() {
if (counter === threshold) {
    console.log(arr);
    counter = 0; // 重置计数器
}
const element = arr.shift();
console.log(element); // 输出当前元素
arr.push(element); // 将当前元素放回数组末尾
counter++; // 更新计数器
if (arr.length > 0) {
    setTimeout(pollArray, 1000); // 每秒执行一次轮询
}
}

pollArray(); // 开始执行轮询
```

这个代码会每秒钟输出一个数组元素,然后在第六个元素输出后输出整个数组,然后继续每秒钟输出其余的元素直到数组结束。

godonlyknow 发表于 2023-4-11 09:15

本帖最后由 林逸欣 于 2023-4-11 09:25 编辑

该函数接受两个参数,第一个参数是需要输出的数组,第二个参数是每次输出的行数。函数内部使用定时器来控制输出的节奏,每隔一秒输出指定数量的行,当全部输出完毕后清除定时器。你可以根据需要修改输出的时间间隔和行数。


function outputMultiLines(arr, num) {
      let index = 0;
      const timer = setInterval(function() {
                for (let i = 0; i < num && index < arr.length; i++) {
                        console.log(arr);
                        index++;
                }
                if (index >= arr.length) {
                        clearInterval(timer);
                }
      }, 1000);
}
// 调用示例
const arr = ['line1', 'line2', 'line3', 'line4', 'line5', 'line6', 'line7', 'line8', 'line9'];
outputMultiLines(arr, 6);

HappyCrazy 发表于 2023-4-11 09:24

const arr = ; // 假设要轮询的数组是
const interval = 6; // 每隔 interval 次元素打印一个空行
let count = 0; // 计数器,记录已经轮询了几次

// 定义一个函数,用于打印当前轮询的元素
function printCurrentElement() {
const index = count % arr.length; // 计算当前元素的下标
console.log(arr); // 打印当前元素
}

// 轮询数组,每轮询一次就打印当前元素并将计数器加 1
for (let i = 0; i < arr.length * 2; i++) {
printCurrentElement();
count++;

// 如果已经轮询了 interval 次,则打印一个空行,并将计数器清零
if (count === interval) {
    console.log('');
    count = 0;
}
}

wuleiwushen 发表于 2023-4-11 09:27

let arr =

function test(arr, count){
for(let i = 0; i < Math.ceil(arr.length / 6); i++){
    console.log( arr.slice(i * count, (i + 1) * count) );
}
}

test(arr, 6)

zbr878458173 发表于 2023-4-11 09:33

让我们来抗抗chatgpt的答案
要实现数组轮询6次后输出,再接着轮询输出直到轮询完毕,我们可以通过以下步骤来实现:
[*]创建一个数组作为轮询的数据源。
[*]定义一个轮询函数,该函数接受两个参数:数组和轮询次数。
[*]在轮询函数中,使用一个for循环来执行轮询操作,每次循环通过取余数的方式计算当前轮询的数组下标。
[*]当循环次数超过6次时,输出当前轮询到的元素。
[*]轮询结束后,继续输出剩余的元素。
下面是实现该功能的JavaScript代码示例:
function arrayPolling(arr, times) {
    // 计算数组长度
    const len = arr.length;
    // 轮询次数
    let count = 0;
    // 输出结果
    const result = [];
    // 执行轮询
    for (let i = 0; i < times; i++) {
      // 计算当前轮询的数组下标
      const index = i % len;
      // 将当前轮询到的元素加入到结果中
      result.push(arr);
      // 增加轮询次数
      count++;
      // 当轮询次数超过6次时,输出当前轮询到的元素
      if (count > 6) {
            console.log(arr);
      }
    }
    // 输出剩余的元素
    for (let i = count; i < len; i++) {
      console.log(arr);
    }
}

// 示例数组
const arr = ;
// 轮询次数
const times = 10;
// 调用轮询函数
arrayPolling(arr, times);

请注意,上述代码只是一个示例,您可以根据自己的需求进行修改和调整。在实际应用中,请确保数组不为空,并处理可能出现的异常情况
页: [1]
查看完整版本: js怎么实现数组轮询6次后输出再接着轮训输出直到轮询完毕