Javascript“映射”在IE中不起作用

Javascript“映射”在IE中不起作用,javascript,jquery,map,Javascript,Jquery,Map,我有以下javascript- var trim = intsAsJSArray.replace(/[\[\]]/g, ""); var data = trim.split(","); data = data.map(function (d) { return +d; }); 然而,这是失败的IE与错误- Error: Object doesn't support property or method 'map' 这让人困惑,

我有以下javascript-

var trim = intsAsJSArray.replace(/[\[\]]/g, "");
       var data = trim.split(",");

       data = data.map(function (d) {
           return +d;
       });
然而,这是失败的IE与错误-

Error: Object doesn't support property or method 'map'
这让人困惑,因为它在Chrome和FireFox中都可以使用。为什么会这样?

IE8大多数ES5数组方法-包括Array.map。因此,您必须要么使用扩展Array.prototype的库,要么切换到将ES5方法附加到自己的对象(如jQuery和下划线)的库

当您用jquery标记您的问题时,很有可能您已经使用了一个,所以这样更改代码就足够了:

var data = $.map(trim.split(","), Number);
IE8大多数ES5数组方法-包括Array.map。因此,您必须要么使用扩展Array.prototype的库,要么切换到将ES5方法附加到自己的对象(如jQuery和下划线)的库

当您用jquery标记您的问题时,很有可能您已经使用了一个,所以这样更改代码就足够了:

var data = $.map(trim.split(","), Number);
在ES5中添加了Arraymap。IE8是在ES5规范完成之前发布的,它不包括大多数ES5特性,包括map。IE9有Arraymap和大多数但不是所有其他ES5添加项;IE10+具有一整套ES5功能

如果您搜索es5 shim,您将发现各种添加选项,这些选项可以追溯添加到包括Arraymap在内的旧环境中

因为您已经将问题标记为jquery,所以可以使用。

在ES5中添加了Arraymap。IE8是在ES5规范完成之前发布的,它不包括大多数ES5特性,包括map。IE9有Arraymap和大多数但不是所有其他ES5添加项;IE10+具有一整套ES5功能

如果您搜索es5 shim,您将发现各种添加选项,这些选项可以追溯添加到包括Arraymap在内的旧环境中

由于您已将问题标记为jquery,因此可以使用。

IE8映射,因为它已添加到ES5中

如果您想为其添加垫片,请查看此polyfil:

否则,只需编写您自己的函数,用您想要的输入值创建一个新对象。

IE8映射,因为它已添加到ES5中

如果您想为其添加垫片,请查看此polyfil:

否则,只需编写您自己的函数,用您想要的输入值创建一个新对象。

在IEs>8中提供。如果您使用的是较新版本,请检查DTD是否正确声明。data=$.mapdata,functiond{return+d;};已经回答了:@杰克,我想你需要一个。快结束吧,对吗?还是我在想别的事?@Ian:你在想,不是。这对健壮的API设计有什么好处在IEs>8中提供。如果您使用的是较新版本,请检查DTD是否正确声明。data=$.mapdata,functiond{return+d;};已经回答了:@杰克,我想你需要一个。快结束吧,对吗?还是我在想别的事?@Ian:你在想,不是。这对健壮的API设计有什么好处LOL我喜欢使用严格-我有理由肯定从来没有任何JavaScript引擎没有Arraymap但有严格模式。LOL我喜欢使用严格-我有理由肯定从来没有任何JavaScript引擎没有Arraymap但有严格模式。