javascript - 如果对象中最初没有 var x,那么 for(var x in object) 如何工作?

标签 javascript arrays

我有一个物体,我想看看里面有什么。因此,我使用了 print(object),其中可能包含 Spot: True,表明猫 Spot 还活着。它返回[object object]。因此,我尝试了 show(object),结果得到了 Spot: True。我认为这是对的,但我不确定索引是什么样的。例如,我不确定键是关联键还是数字键,甚至不确定 JavaScipt 中是否允许关联数组。

我想知道为什么是因为 for (var cats in object){show(cats);} 返回 Spot。我找不到一种方法来定位字符串“cat”作为数组的一部分。

最佳答案

示例中的 cats 是一个 new 变量,用于保存迭代的每个对象。

是的,“关联数组”是允许的,但它们实际上只是对象:

var foo = {
    bar: "baz"
}
alert(foo.bar);
alert(foo["bar"]);

回复:for/in 语句:它或多或少与以下内容相同,此处使用数组:

var cats;
var arr = [42, 69];
for (var i = 0; i < arr.length; i++) {
    cats = arr[i];
    alert(cats);
}

或者你可以使用for/in,它会变成:

for (cats in arr) {
    alert(arr[cats]);
}

数组略有不同,但数组中也没有“猫”。

Fiddle

关于javascript - 如果对象中最初没有 var x,那么 for(var x in object) 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824523/

相关文章:

javascript - 禁用 DFP/DoubleClick iFrame

javascript - 如何在 ImmutableJS Record 的扩展类上使用 setter

javascript - IE TextRange 选择方法无法正常工作

javascript - 如何获取数组中多个键之间的最大值

php - 在 PHP 中更新 JSON 数组

javascript - 如何在 JavaScript 中循环遍历数组并在两个不同位置呈现项目

javascript - 如何检查变量是 jQuery 对象还是普通 DOM 元素?

javascript - NodeJs,500 无法获取访问 token (错误 : connect ECONNREFUSED) at at process. _tickCallback (node.js:419:13)

c# - 数组内存不足异常

java - 在java中的String数组位置分配一个新值