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

数组中的for循环

终洛华
2023-03-14

我遇到了一个相当奇怪的问题,当我试图编码我的机器人的一个特定的部分!为了使其简单简短,我有一个包含各种属性的对象数组(参见代码中的示例)。我想要做的是获取数组中的所有特定属性(例如name)并将其打印到控制台中。我尝试使用一个简单的for循环进行循环,每一个成功的循环,我都要求控制台记录ArrayName[I].name!请参阅代码以获得澄清!

module.exports = {
  commands: ["test"],
  callback: (message, arguments, text) => {
    const data = [
      { name: "Ren", id: "NURE1" },
      { name: "Isa", id: "SCIS1" }
    ]

    for (var i = 0; i <= data.length; i++) {
      console.log(data[i].name)
    }
  }
}

问题是它确实按预期记录了代码--例如,在本例中是Ren和Isa,但一旦控制台记录,应用程序就会崩溃,并抛出错误--属性名称未定义;-我用ID的时候也一样。是不是我做错了什么??

共有1个答案

锺离穆冉
2023-03-14

这是因为data只有2个项(索引0和索引1),但您试图访问3个项(索引0、1和2)。索引2是未定义的,所以它抛出了一个未定义的错误。您应该在for循环中使用i 而不是 i<=data.lengts

您还可以使用for...of循环来避免索引方面的问题:

for (let item of data) {
    console.log(item.name);
}

 类似资料:
  • 并分别处理这两个数组。这是更好的解决方案吗?

  • 我创建了一个2D数组,需要将元素或映射到要打印的彩色像素。这就是我所拥有的。 像素数组,表示不同颜色的整数值 我测试了,它工作得很好。在中的每个for循环旁边都会弹出唯一的错误,其中声明: 此外,int刻度用于定位像素应该在的位置,并赋予其正确的大小

  • 问题:我能否使用Java流API(即一行)实现方法。需要变量来定义字符串的长度;我尝试为每个循环,但它不工作。我需要一个循环的范围。 我的尝试:

  • 我一直得到一个错误,但我不明白为什么。这个错误是关于不能从double转换成int,但是我把所有东西都声明成double,所以我不明白为什么会出现这个错误。

  • 问题内容: 在下面的示例代码中,是否真的需要counter = 0,还是有更好,更多的Python方法来访问循环计数器?我看到了一些与循环计数器有关的PEP,但它们要么被延迟要么被拒绝(PEP 212 和PEP 281)。 这是我的问题的简化示例。在我的实际应用程序中,这是通过图形完成的,整个菜单必须每帧重新绘制一次。但这以易于复制的简单文本方式进行了演示。 也许我还应该补充一点,我正在使用Pyt