Array.map在IE9中不起作用

时间:2012-02-14 08:21:05

标签: javascript

我正在尝试在IE9中构建一个websocket应用程序,但我有以下Javascript错误:

IE9控制台:

SCRIPT438: Object doesn't support property or method 'map' 
websock.js, line 211 character 5

websock.js功能:

function send_string(str) {
    //Util.Debug(">> send_string: " + str);
    api.send(str.split('').map(
        function (chr) { return chr.charCodeAt(0); } ) );
}

同样在IE9控制台str = the text I entered中。如果我先尝试拆分它,那么我得到正确的字符串数组但仍然没有映射。

例如,如果我尝试发送“text”:

str.split("") = ['t','e','x','t']

我在控制台中找到了这个。但遗憾的是.map无效。有什么建议?

PS:

我尝试更改w3school代码this link

document.write(str.split("").map(
        function (chr) { return chr.charCodeAt(0); } ) + "<br />");

使用IE9,地图正在使用理想的结果!

3 个答案:

答案 0 :(得分:3)

IE9支持地图,但很可能你的html页面是以怪癖模式呈现的,这就是原因。尝试添加doctype,看看是否能解决问题。

答案 1 :(得分:0)

根据the ES5 compatibility table,IE9确实支持Array#map。访问http://kangax.github.com/es5-compat-table/并查看“此浏览器”列。

确保浏览器处于IE9模式。

答案 2 :(得分:-1)

FF实现map:

Array.prototype.hasOwnProperty('map') // true

IE没有实现map:

Array.prototype.hasOwnProperty('map') // false

抱歉,您似乎必须编写自己的map功能代码。