首页 > 解决方案 > 如何对数组中的每一秒数求和?

问题描述

我无法在 Javascript 中对数组中的每一秒/其他数字求和。有什么建议么?(使用挪威函数,对不起!)如:2、4、6、8、10 = 30..

我对第二个/其他号码的功能是

function tall(nummer) {
var tall = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];

if (nummer == 5) {
    partall = tall.filter((_,i) => i&1);
        document.getElementById("tall").innerHTML = partall;
}

最后的总和:

if (nummer == 9) {
    partall = tall.filter((_,i) => i&1);
    partall += tall;
        document.getElementById("tall").innerHTML = partall;
}

标签: javascriptarrays

解决方案


我能看到的最简单的方法是使用reduce(适合求和),只是不要添加您不想对总和做出贡献的索引的值:

const tall = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
const sum = tall.reduce((sum, val, i) => sum + (i & 1 ? val : 0), 0);
console.log(sum);

或者

const tall = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
const sum = tall.reduce((sum, val, i) => (i & 1 ? sum + val : sum), 0);
console.log(sum);


推荐阅读