Javascript 迭代dicts-doens数组';我不能正常工作

Javascript 迭代dicts-doens数组';我不能正常工作,javascript,Javascript,有人能解释一下这里发生了什么事吗?如何检索至少1 $> for (var i in [{a: 1, b: "ok"}]) { console.log(i); } 0 因为。。。在循环中,循环对象的键。您传递了一个包含一个元素(元素0)的数组,因此得到0 如果您这样做: for (var i in {a: 1, b: "ok"}) { console.log(i); } 你会得到“a”和“b”。区别在于你的括号。这使对象成为一个具有单个值的数组,该值为“a-b”对象 如果要获取对象中的值

有人能解释一下这里发生了什么事吗?如何检索至少
1

$> for (var i in [{a: 1, b: "ok"}]) { console.log(i); }
0

因为。。。在循环中,循环对象的键。您传递了一个包含一个元素(元素0)的数组,因此得到0

如果您这样做:

for (var i in {a: 1, b: "ok"}) { console.log(i); }
你会得到“a”和“b”。区别在于你的括号。这使对象成为一个具有单个值的数组,该值为“a-b”对象

如果要获取对象中的值,则需要获取它们。不幸的是,当您从对象文字开始时,这有点棘手,因为无法引用它。您可以将其放在一个变量中:

var obj = {a: 1, b: "ok"};
for (var i in obj) { console.log(obj[i]); }
(function(obj) {
  for (var i in obj) { console.log(obj[i]); }
})( {a: 1, b: "ok"} );
编辑-如果您想在不使用讨厌的局部变量的情况下将其保留为单个“干净”语句:

var obj = {a: 1, b: "ok"};
for (var i in obj) { console.log(obj[i]); }
(function(obj) {
  for (var i in obj) { console.log(obj[i]); }
})( {a: 1, b: "ok"} );

因为。。。在循环中,循环对象的键。您传递了一个包含一个元素(元素0)的数组,因此得到0

如果您这样做:

for (var i in {a: 1, b: "ok"}) { console.log(i); }
你会得到“a”和“b”。区别在于你的括号。这使对象成为一个具有单个值的数组,该值为“a-b”对象

如果要获取对象中的值,则需要获取它们。不幸的是,当您从对象文字开始时,这有点棘手,因为无法引用它。您可以将其放在一个变量中:

var obj = {a: 1, b: "ok"};
for (var i in obj) { console.log(obj[i]); }
(function(obj) {
  for (var i in obj) { console.log(obj[i]); }
})( {a: 1, b: "ok"} );
编辑-如果您想在不使用讨厌的局部变量的情况下将其保留为单个“干净”语句:

var obj = {a: 1, b: "ok"};
for (var i in obj) { console.log(obj[i]); }
(function(obj) {
  for (var i in obj) { console.log(obj[i]); }
})( {a: 1, b: "ok"} );

尝试通过将{}放入变量来保存所有信息

c = {a:1,b:'ok'};
for(var i in c){console.log(c[i])};

尝试通过将{}放入变量来保存所有信息

c = {a:1,b:'ok'};
for(var i in c){console.log(c[i])};

这是单个dict的数组。该数组正在为其索引进行迭代。数组中第一个、唯一和最后一个值的索引是
0
。请查看以了解
中…的
如何工作。这是一个由单个dict组成的数组。正在迭代该数组的索引。数组中第一个、唯一和最后一个值的索引是
0
。请查看以了解
中…的
工作原理。