I have these arrays:
// I want to calculate these arrays each other.
var a = [1,2,3]
var b = [1,2,3]
var c = [3,4,5]
// ->
var result = [5, 8, 11]
I can calculate two array with below method but how can I sum n arrays?
Array.prototype.Sum = function (arr) {
var s = [];
if (arr != null && this.length == arr.length) {
for (var i = 0; i < arr.length; i++) {
var c = this[i] + arr[i]
s.push(c);
}
}
return s;
}
Assuming
var arrays = [
[1,2,3],
[1,2,3],
[3,4,5]
];
Using your Sum
with EcmaScript 5 array methods,
var result = arrays.reduce(function(arr1, arr2){
return arr1.Sum(arr2);
});
Alternatively, consider not polluting Array.prototype
and just using something like (ES5)
var result = arrays.reduce(function(arr1, arr2) {
return arr1.map(function(num, index){
return num+arr2[index];
});
});
Or, simplifying using EcmaScript 6 arrow functions,
var result = arrays.reduce(
(arr1, arr2) => arr1.map(
(num, index) => num+arr2[index]
)
);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加