【发布时间】:2018-07-19 09:44:25
【问题描述】:
我有一个对象'obj'。假设我们暂时不知道它来自哪里。
如果我这样做
console.log(JSON.stringify(obj));
我得到
[{"foo":101,"bar":1,"foobar":0},{"foo":102,"bar":1,"foobar":0}]
这是什么东西?
我要求我看到两种我无法理解的行为:
1)它似乎是一个对象数组(?)所以我希望
console.log(obj[0])
返回:
{"foo":101,"bar":1,"foobar":0},{"foo":102,"bar":1,"foobar":0}
而是返回:
{"foo":101,"bar":1,"foobar":0}
2) 我希望
for (var somevar in obj){
console.log(JSON.stringify(somevar));
}
返回
first step: {"foo":101,"bar":1,"foobar":0}
second step: {"foo":102,"bar":1,"foobar":0}
而是返回
first step: "0"
second step: "1"
谁能解释一下这个对象的性质以及为什么这两种情况(尤其是第二种情况)会返回这样的结果?
【问题讨论】:
-
这是一个对象数组。我不明白为什么您会在第一种情况下期望输出。
-
您似乎不了解数组的工作原理,也不了解
for..in的工作原理...... -
你可以在这里使用
for..of。它会给你元素而不是索引。 -
你为什么期望
console.log(obj[0])返回{"foo":101,"bar":1,"foobar":0},{"foo":102,"bar":1,"foobar":0}...? -
@SashaGrievus:因为错字。多加注意并安装/配置拼写检查器
标签: javascript object