如何对js数组进行分块并将数学函数应用于分块?

时间:2020-04-24 19:46:10

标签: javascript arrays

将数组拆分为小块,然后在小数组中应用数学函数的最快方法是什么? 数学函数可能很简单,例如chunk mod 26的总数。

我的意思是,我有一个数组[1,2,3,4,5,6],我需要创建它的块以使每3个元素成为1个块,所以我将从主数组中获取:

[1,2,3] [4,5,6]

[1,2,3] 6mod26和[4,5,6] 15mod26的申请总数。 因此,最终数组将为[6,15]。 另外,如果其余元素小于所需的块大小,请忽略主数组的其余部分,或者将其单独添加到数组中。

简单方法..

[1,2,3,4,5,6,7] => chunk1[1,2,3] , chunk2[4,5,6] , chunk3[7]

result = [ (total([1,2,3]) mod 26 ) , (total([4,5,6]) mod 26 ) ]

我希望这很清楚。

2 个答案:

答案 0 :(得分:1)

您可以将数组切成所需的大小,并通过添加所有项目并减少剩余值的结果来缩小数组。

var add = (a, b) => a + b,
    array = [1, 2, 3, 4, 5, 6],
    size = 3,
    result = [],
    i = 0;

while (i < array.length) {
     result.push(array.slice(i, i += size).reduce(add) % 26);
}

console.log(result);

答案 1 :(得分:0)

对不起,但是我不知道如何用这种简单的方法使事情更清楚: 1.对数组进行分块 2.获取每个块的总和 3.修改每个块的总和 4.从mod创建一个新数组。

我已经走了,但我认为有更好的方法:

push