javascript - ie 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”

最佳答案

您正在调用 native 数组的 map 方法,并且 IE7 does not have it implemented (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;

希望有帮助。

关于javascript - ie 7 的数组映射方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25764153/

相关文章:

php - 从数据库表中获取值到选择框中

javascript - 无法制作动态增长的正则表达式

javascript - 展开子菜单条件 (jQuery)

jquery - Bootstrap 3 导航栏动态折叠

php - 如何在ie7中设置兼容性 View ?

jquery - 使用 jQuery 修正 IE7 中的显示

javascript - 带有工具提示的 id base anchor 滚动链接

javascript - 如何使用 toastr ?

javascript - AngularJS 中的 Promise

jquery - 为什么 jQuery.val 在 Internet Explorer 7 (IE7) 中返回数组而不是字符串?