Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在IE中获取多维javascript数组的值_Javascript_Arrays_Internet Explorer_Object - Fatal编程技术网

在IE中获取多维javascript数组的值

在IE中获取多维javascript数组的值,javascript,arrays,internet-explorer,object,Javascript,Arrays,Internet Explorer,Object,我有这个数组(我知道,从技术上讲,javascript中没有多维数组)或“对象”。我希望得到值-888,如下所示: var thisPage = 1; var pagePos = { 0: { left: '0', url: 'home', }, 1: { left: '-888', url: 'what_we_offer',

我有这个数组(我知道,从技术上讲,javascript中没有多维数组)或“对象”。我希望得到值-888,如下所示:

    var thisPage = 1;

    var pagePos = {
        0: {
            left: '0',
            url: 'home',
        },
        1: {
            left: '-888',
            url: 'what_we_offer',
        },
        2: {
            left: '-1776',
            url: 'clients',
        },
        3: {
            left: '-2664',
            url: 'contact_us',
        }
    };

alert(pagePos[thisPage].left);
它在Firefox中运行良好,但在IE中不行。为什么


谢谢。

这是因为
url
属性的值后面有逗号。JSON中的最后一个值后面不能有逗号。正确的语法是

var pagePos = {
    0: {
        left: '0',
        url: 'home'
    },
    1: {
        left: '-888',
        url: 'what_we_offer'
    },
    2: {
        left: '-1776',
        url: 'clients'
    },
    3: {
        left: '-2664',
        url: 'contact_us'
    }
};

这是因为
url
属性的值后面有逗号。JSON中的最后一个值后面不能有逗号。正确的语法是

var pagePos = {
    0: {
        left: '0',
        url: 'home'
    },
    1: {
        left: '-888',
        url: 'what_we_offer'
    },
    2: {
        left: '-1776',
        url: 'clients'
    },
    3: {
        left: '-2664',
        url: 'contact_us'
    }
};

如果将其转换为一个对象数组(因为这是访问它的方式),该怎么办


还有。。。删除url属性后的多余逗号。有些浏览器可以使用,有些则不行。

如果将其转换为一个对象数组(因为这是访问它的方式),该怎么办


还有。。。删除url属性后的多余逗号。有些浏览器可以使用,有些则不行。

我可以看到IE在这方面可能存在一些问题(这是IE,cmon)。尝试将数组的性质更改为简单的对象数组。它们自然会按照初始化的顺序进行编号

var pagePos = [
    {
        left: '0',
        url: 'home',
    },
    {
        left: '-888',
        url: 'what_we_offer',
    },
    {
        left: '-1776',
        url: 'clients',
    },
    {
        left: '-2664',
        url: 'contact_us',
    }
];

我可以看出IE在这方面可能存在一些问题(这是IE,cmon)。尝试将数组的性质更改为简单的对象数组。它们自然会按照初始化的顺序进行编号

var pagePos = [
    {
        left: '0',
        url: 'home',
    },
    {
        left: '-888',
        url: 'what_we_offer',
    },
    {
        left: '-1776',
        url: 'clients',
    },
    {
        left: '-2664',
        url: 'contact_us',
    }
];

这是一种奇怪的组合数组的方式……我很惊讶它在任何浏览器中都能工作!尝试定义
pagePos
如下:

var pagePos = [ // note: bracket!
        {
            left: '0',
            url: 'home',
        },
        {
            left: '-888',
            url: 'what_we_offer',
        },
        {
            left: '-1776',
            url: 'clients',
        },
        {
            left: '-2664',
            url: 'contact_us',
        }
    ];

这是一种奇怪的组合数组的方式……我很惊讶它在任何浏览器中都能工作!尝试定义
pagePos
如下:

var pagePos = [ // note: bracket!
        {
            left: '0',
            url: 'home',
        },
        {
            left: '-888',
            url: 'what_we_offer',
        },
        {
            left: '-1776',
            url: 'clients',
        },
        {
            left: '-2664',
            url: 'contact_us',
        }
    ];

它在IE中确实有效。这是你的真实代码吗?还有一些事情出了问题,一些我们没有看到的事情。在声明
3
属性之后,是否可能有一个尾随
?因为这在IE中不太管用。@DavidHedlund他没有说IE的哪个版本…谢谢你的回复,实际上duri在下面有它-是url属性后的尾随逗号抛出了它。干杯。@nex:fair point。嘿,事后来看,“我们没有看到的东西……也许后面的逗号”应该是我没有看到的东西,因为它在IE中确实起作用。这是你的真实代码吗?还有一些事情出了问题,一些我们没有看到的事情。在声明
3
属性之后,是否可能有一个尾随
?因为这在IE中不太管用。@DavidHedlund他没有说IE的哪个版本…谢谢你的回复,实际上duri在下面有它-是url属性后的尾随逗号抛出了它。干杯。@nex:fair point。嘿,事后来看,“我们没有看到的东西……也许后面的逗号”应该是我没有看到的东西o_OYes-这是url属性后面的额外逗号!谢谢。是的-这是url属性后的额外逗号!谢谢