javascript - 迭代数组中的 3 个项目

标签 javascript

我有以下数组:

var text = [
    "RISE AND SHINE, JONATHON! HMM, ", 
    "THAT'S A MOUTHFUL, HOW ABOUT ", 
    "I JUST CALL YOU JOHN? MY ", 
    "NAME IS PROFESSOR ", 
    "PHIL. I BUILT YOU FROM ", 
    "SCRATCH. I WANT TO TELL YOU ",
    "A LITTLE STORY BEFORE WE START."
];

然后我循环遍历数组:

for (var i = 0; i < 3; i++) {
    this.font.draw(text[i]);
}

这显然输出:

RISE AND SHINE, JONATHON! HMM,
THAT'S A MOUTHFUL, HOW ABOUT 
I JUST CALL YOU JOHN? MY

我需要帮助的是创建一个函数,该函数将迭代接下来的 3 行然后显示:

NAME IS PROFESSOR
PHIL. I BUILT YOU FROM
SCRATCH. I WANT TO TELL YOU

..等等。

这是我为 JavaScript/HTML5 游戏编写的聊天气泡代码,其中我的聊天对话在任何给定时间仅容纳 3 行文本。

一旦对话到达最后一句话。我希望它从头开始。

最佳答案

如果我理解正确的话,你可以做的就是备份你的数组并拼接它直到所有行都被读取。换句话说:

var textOut = text,
    len = text.length / 3,
    i = 0;
for ( ; i < len; i++ ) {
  setTimeout(function() {
    console.log( textOut.splice(0, 3).join(' ') );
  }, i*1000 );
}

上面将每秒记录 3 行,直到读取所有行。
顺便说一句,您不需要每个字符串末尾的空格,因为您可以使用带有空格的join

演示: http://jsbin.com/atenib/9/edit

关于javascript - 迭代数组中的 3 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216530/

相关文章:

javascript - 类型错误 : Cannot read property 'contentWindow' of undefined

javascript - 如何防止慢速脚本警告并强制浏览器继续运行脚本直到完成?

javascript - 图像与 Ionic 中的侧边菜单栏重叠

javascript - React.js 根据子级更改父级宽度

javascript - 如何构建一个适用于多参数柯里化(Currying)函数的最终参数的装饰器?

javascript - 具有相同 CSS 代码的 Chrome 和 Safari 中的不同中心

javascript - 如何检查所选文本是否在两行文本内

javascript - Flutter 如何从 api 下载 pdf 文件

javascript - 无法从 JavaScript 客户端对象模型文件夹内的 SharePoint 文档中检索元数据

javascript - 如何将 png Canvas 图像下载为 PDF JQuery