我正在尝试为我的 AngularJS 应用程序构建一个辅助函数(但解决方案不必使用angular.forEach
)。该函数应采用任意数量的具有相同长度的数组并将这些值相加以形成一个新数组,例如:
a = [1, 2, 3];
b = [4, 5, 6];
result = [5, 7, 9];
我试图不使用 array.map() 或sylvesterjs来实现 IE8 兼容性。我被困在循环参数上,因为 javascript 似乎不喜欢在 for 循环中嵌套函数。到目前为止的代码:
function arrayAdd () {
// make sure all args have same length
var totalLen = 0;
angular.forEach(arguments, function (arg) {
totalLen += arg.length;
});
var avgLen = totalLen / arguments.length;
if (avgLen === arguments[0].length) {
var arrNew = mkArray(0, arguments[0].length);
// helper function to make an empty array, not shown here
// need to refactor below with loop for unlimited # of args
angular.forEach(arguments, function (arg, i) {
arrNew[0] += arg[0];
});
angular.forEach(arguments, function (arg, i) {
arrNew[1] += arg[1];
});
return arrNew;
} else {
throw 'arrayAdd expects args with equal length';
}
}
谢谢!