gpt4 book ai didi

javascript - 如何将数组转换为复杂数组

转载 作者:行者123 更新时间:2023-12-02 14:26:09 25 4
gpt4 key购买 nike

我有这个数组 [2, 1, 2, 1, 1, 1, 1, 1]

我希望如果值的总和超过四,则在数组中创建一个新数组。

我想要这样的结果:[[2,1],[2,1,1],[1,1,1]]

最佳答案

您可以使用Array#reduce并用它来添加最后插入的数组的值和整个结果数组。

算法的主要部分是这一行

!i || r[r.length - 1].reduce(add, 0) + a > 4 ?
r.push([a]) :
r[r.length - 1].push(a);

其中会进行检查,如果 i 为零(在开始时),或者如果结果的最后一个数组的总和与实际项目的总和大于 4,则添加具有实际值的新数组。如果没有,则将该元素推送到最后一个数组。

var data = [2, 1, 2, 1, 1, 1, 1, 1],
add = function (a, b) { return a + b; },
result = data.reduce(function (r, a, i) {
!i || r[r.length - 1].reduce(add, 0) + a > 4 ? r.push([a]) : r[r.length - 1].push(a);
return r;
}, []);

console.log(result);

关于javascript - 如何将数组转换为复杂数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38219181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com