首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IE8阵列迭代

IE8阵列迭代
EN

Stack Overflow用户
提问于 2012-05-07 10:59:03
回答 3查看 584关注 0票数 1

嗨,我正在为IE8 compat模式调试我的页面,这个脚本就是不喜欢工作和崩溃。

基本上,它必须遍历一个3D数组,并向一个变量添加一个本地路径。我可以不这样做,但我只是好奇为什么它从来不起作用.

欢迎任何建议:)下面是代码:

代码语言:javascript
运行
复制
for(i=0;i<menu_items_p.length;i++)
for(j=0;j<menu_items_p[i].length;j++)
menu_items_p[i][j][1]='http://127.0.0.1/'+menu_items_p[i][j][1];

数组看起来是这样的:

代码语言:javascript
运行
复制
var menu_items_p =
[
    [   //Products
        ['Health Care', 'products/health.php'],
        ['Aroma Therapy','products/scents.php'],
    ],
            [      // Empty
             ],
    [   //Test
        ['What ever', 'spirulina/about.php'],
    ]
]

但问题是,它有时有空值,而array.length会触发一些错误.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-13 18:55:06

正如Yoshi和ThiefMaster所建议的,我这样做是为了解决这个问题:

代码语言:javascript
运行
复制
for(var i=0;i<menu_items_p.length;i++)
if (menu_items_p[i] !== undefined)
for(var j=0;j<menu_items_p[i].length;j++)
if (menu_items_p[i][j] !== undefined)
menu_items_p[i][j][1]='http://127.0.0.1/'+menu_items_p[i][j][1];

用于未定义. replaced.

  • Check的
  1. 全局vars .

很遗憾他们没有以正式的方式回答,所以我不得不回答我自己:)谢谢大家!

票数 0
EN

Stack Overflow用户

发布于 2012-05-07 11:20:25

使用原始数组声明时:

代码语言:javascript
运行
复制
var menu_items_p =
[
    [   //Products
        ['Health Care', 'products/health.php'],
        ['Aroma Therapy','products/scents.php'],
    ],
            [      // Empty
             ],
    [   //Test
        ['What ever', 'spirulina/about.php'],
    ]
]

错误发生在IE8中,而不在IE9中。只需删除两个逗号:

代码语言:javascript
运行
复制
var menu_items_p =
[
    [   //Products
        ['Health Care', 'products/health.php'],
        ['Aroma Therapy','products/scents.php'] // here comma removed
    ],
            [      // Empty
             ],
    [   //Test
        ['What ever', 'spirulina/about.php'] // here comma removed
    ]
]

一切都必须正常工作。

票数 3
EN

Stack Overflow用户

发布于 2012-05-07 11:20:43

也许您的代码可以这样处理空值:

代码语言:javascript
运行
复制
for(var i = 0; i < menu_items_p.length; i++) {
    // we skip the value if it is empty or an empty array 
    if(!menu_items_p[i] || !menu_items_p[i].length) continue; 
    for(var j = 0; j < menu_items_p[i].length; j++) {
       // again, we skip the value if it is empty or an empty array
       if(!menu_items_p[i][j] || !menu_items_p[i][j].length) continue;
       menu_items_p[i][j][1] = 'http://127.0.0.1/' + menu_items_p[i][j][1];
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10480867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档