Javascript IE7中的数组映射方法错误

Javascript IE7中的数组映射方法错误,javascript,jquery,internet-explorer-7,Javascript,Jquery,Internet Explorer 7,这是我的代码,它适用于除IE 7以外的所有浏览器: var sum = [0, 1, 2, 3, 4, 5, 6, 7, 8] .map(function (x) { return parseInt(input[x]) * (10 - x); }) .reduce(function (x, y) { return x + y; }) % 11; 如何在所有浏览器中解析它 编辑:错误:对象不支持属性或方法“map”您正在调用本机数组的map方法,和(和reduce

这是我的代码,它适用于除IE 7以外的所有浏览器:

var sum = [0, 1, 2, 3, 4, 5, 6, 7, 8]
        .map(function (x) { return parseInt(input[x]) * (10 - x); })
        .reduce(function (x, y) { return x + y; }) % 11;
如何在所有浏览器中解析它


编辑:错误:对象不支持属性或方法“map”

您正在调用本机数组的
map
方法,和(和
reduce
也会发生同样的情况)。这是一个使用jQuery函数的解决方案,它应该可以工作:

var acc = 0;

$.each($.map([0, 1, 2, 3, 4, 5, 6, 7, 8], function(x) {
    return parseInt(input.charAt(x)) * (10 - x);
}), function(key, value) {
    acc = acc + value;
}); 

var sum = acc % 11;
更重要的是,如果
input
的键始终是数字(并且您遍历了所有数字),则可以删除具有以下代码的map函数:

var acc = 0;

$.each(input, function(key,value) {
    acc = acc + (parseInt(value) * (10 - key));
});

var sum = acc % 11;

希望有帮助。

您使用的是哪个版本的jquery?版本1.x支持较旧的IE版本。我使用了[kendo]/[2014.1.416]/jquery.min.js,这是kendoError的1.9.1自定义版本:对象不支持不是jquery
map
方法(
$.map
)的属性或方法“map”,您正在调用本机数组的
map
方法。我知道它不支持,但您的代码返回2,但get和reduce函数的和值返回1,实际上结果不同。@kamiar3001在我忘记在代码的那部分添加
输入[x]
之前(我刚刚使用的是
x
),所以也许这就是它不起作用的原因。输入中的值是什么,我可以测试它?这是我的字符串值“0453657941”。当按下兼容按钮时,它不再工作。acc值为NaN,但在IE 11中它的工作原理相同。@kamiar3001编辑了答案,问题是您无法使用IE7中的
[]
访问字符串元素。使用
charAt
应该可以工作。