将数组拆分为小块,然后在小数组中应用数学函数的最快方法是什么? 数学函数可能很简单,例如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 ) ]
我希望这很清楚。
答案 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