for in-loop-变量中包含什么-javascript
我经常使用PHP,现在我正在慢慢学习javascript。我正在为一些谷歌地图标记设置zIndex。我正在使用for-in循环。我希望变量“I”包含一个我可以用来设置zIndex的数字,但如果我这样做,它会破坏代码,并且标记不会显示在地图上。如果我使用数字,代码就会起作用。如果我将一个数字输入一个变量并使用该变量,代码也会工作。所以我可以做到这一点,但我想了解为什么使用for in-loop-变量中包含什么-javascript,javascript,google-maps,variables,Javascript,Google Maps,Variables,我经常使用PHP,现在我正在慢慢学习javascript。我正在为一些谷歌地图标记设置zIndex。我正在使用for-in循环。我希望变量“I”包含一个我可以用来设置zIndex的数字,但如果我这样做,它会破坏代码,并且标记不会显示在地图上。如果我使用数字,代码就会起作用。如果我将一个数字输入一个变量并使用该变量,代码也会工作。所以我可以做到这一点,但我想了解为什么使用I变量不起作用。 当我将I输出到div中时,它显示数字1,2,3,4,5,6,7 for (var i in data.resu
I
变量不起作用。
当我将I
输出到div中时,它显示数字1,2,3,4,5,6,7
for (var i in data.results) {
var myLatlng = new google.maps.LatLng(data.results[i].latitude,data.results[i].longitude);
markers[i] = new StyledMarker({styleIcon:new StyledIcon(StyledIconTypes.BUBBLE,
{
color:"bbbbbb",
text:data.results[i].id
}),
position:myLatlng,
zIndex: 1,
map:map
});
google.maps.event.addListener(markers[i], 'mouseover', function ()
{
this.setOptions({zIndex:100});
});
google.maps.event.addListener(markers[i], 'mouseout', function ()
{
this.setOptions({zIndex:1});
});
}
您正在通过
数据中的属性进行循环。results
for in loop将通过data.results的键进行循环。如果希望使用i作为索引,则应使用常规for循环,如下所示:
for (var i = 0; i < data.results.length; i++) {
// some code using data.results[i];
}
for(var i=0;i
希望这就是您想要的解释类型:
当您使用for in
循环时,您会得到对象的键[就像其他答案所说的那样]。这些键与常规for
循环的整数索引之间的区别在于,对象键的类型始终为string
如果运行此简单循环:
var test = {
1: 'a',
2: 'b',
3: 'c'
}
for (var i in test) {
console.log(typeof i, i);
}
您将获得以下输出:
string 1
string 2
string 3
由于您对编程并不陌生,您可能知道需要一个整数来用于数组的索引,这是数据的数据类型。我假设是results
这是一个你需要的箱子
希望这是有帮助的 我明白你在说什么,爱德华·赫奇斯。那么,它为什么会在代码中的所有其他变量中工作,比如data.results[i]、latitude、data.results[i]、longitude、markers[i]以及它还打印数字呢?我不知道任何对象中都包含什么样的数据。我为您使用的语法链接了文档。这并不难,只要读一读就知道了。在中为…使用
时,您正在遍历对象属性。您可以在这里阅读更多内容:我理解您所说的jontewks,我将使用您建议的循环,但它如何在代码中的所有其他变量中工作,例如data.results[I]、latitude、data.results[I]、longitude、markers[I],它还打印数字?