在Javascript中循环对象内部的数组

Wil*_*ham 5 javascript arrays for-loop javascript-objects

可能重复:
循环通过Json对象

{
  "data": [
    {
      "name": "Jen",
      "id": "1"
    },
    {
      "name": "Steve",
      "id": "8"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我正在与之交互的服务器响应上述内容.

我正在尝试enter code here为For..in语句循环遍历它.

这就是我想要做的:

for (var item in response.data) {
  console.log(item.name);
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.什么地方出了错?

谢谢

在阅读评论后,我认为可以使用以下内容:

for (var item in response.data) {
  console.log(response.data[item].name);
}
Run Code Online (Sandbox Code Playgroud)

我能够得到一份名单......

有人可以解析它的工作原理吗?

Mic*_*ski 10

data实际上是一个数组(用表示[]),而不是一个对象,所以你想要一个常规for循环而不是一个for in.

for (var i = 0; i<response.data.length; i++) {
  // use i as an array index
  console.log(response.data[i].name);
}
Run Code Online (Sandbox Code Playgroud)

在JavaScript中,for in构造用于迭代对象属性,但是为了迭代数组,通常使用增量for循环.


Ale*_*kov 1

查看:为什么在数组迭代中使用“for...in”是一个坏主意?

For...in 迭代对象的属性名称。数组项也被视为“属性”,因此 for..in 迭代索引(在您的情况下为 0、1)。正如预期的那样,当您使用 response.data[0] 时,您将获得数组的第一个元素。