这是我的代码,它可以在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'
答案 0 :(得分:1)
您正在调用本地数组的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
的键始终是数字(并且您经历了所有键),则可以删除具有以下代码的地图函数:
var acc = 0;
$.each(input, function(key,value) {
acc = acc + (parseInt(value) * (10 - key));
});
var sum = acc % 11;
希望它有所帮助。