IE8返回NaN

时间:2011-11-04 16:43:04

标签: javascript internet-explorer-8

出于某种原因,在Internet Explorer 8(可能还有7个)中,以下代码部分没有任何想法?

var middlelatlong = bounds.getCenter();

//when alerted middlelatlong = (51.65494320798432,0.5499464196260533);

var x = 0;
var keys = new Array();
for(var key in middlelatlong){
    if(x <= 1){
        keys[x] = key;
    }
    x++;
}

var southlong = middlelatlong[keys[0]]-0.00017;

在Internet Explorer 8中返回NaN,但在所有其他浏览器中,它等于51.654790472326724

2 个答案:

答案 0 :(得分:1)

在第一行,我认为你的意思是:

middlelatlong = [51.65494320798432,0.5499464196260533];

此外,在for循环中,只需使用常规迭代和增量。

答案 1 :(得分:1)

我不知道你要用你的代码实现什么,但我认为middlelatlong[keys[0]]会返回一些不是数字的东西。

您似乎正在使用Google Maps API并且想要访问坐标的纬度部分。您应该正确阅读document并使用API​​访问信息,而不是您自己尝试提取信息。

如果getCenter引用the method described here,则会返回LatLng个对象。您可以使用lat()访问纬度(如果您想要经度,请使用lng()):

var southlong = bounds.getCenter().lat() - 0.00017;

您的问题是您正在假设遍历对象属性的顺序,但未定义此顺序,这取决于实现。所以你不能说前两个属性是坐标,对象也有其他属性,可以先在IE中遍历。