这是我的代码,它适用于除 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/