Fun with function.apply
and Array.reduce
function logAndSum(sum, n) {
console.log('%s + %s = %s', sum, n, n + sum);
return n + sum;
}
function logAndSumAll () {
var args = Array.prototype.slice.call(arguments);
console.log(
args.join(' + ') + ' = ' + args.reduce(function (sum, n) { return sum + n }, 0)
);
}
var nums = [1, 2, 3, 4, 5];
// nums.reduce(logAndSum, 10);
nums.forEach(function (n, i) {
var subArray = nums.slice(-1 * (i+1));
console.log(subArray);
logAndSumAll.apply(logAndSumAll, subArray);
console.log();
});
nums
.map(function (n, i) {
return nums.slice(-1 * (i+1));
})
.reverse()
.forEach(function (subArray) {
console.log(subArray);
logAndSumAll.apply(logAndSumAll, subArray);
console.log();
});