gpt4 book ai didi

Javascript将数组中的数字与一系列连续数字分组

转载 作者:行者123 更新时间:2023-12-01 13:40:20 29 4
gpt4 key购买 nike

例如,给定一个排序的整数数组

a = [0,1,2,5,6,9];

我想确定范围
[
[0,1,2],
[5,6],
[9]
]

到目前为止,我已经尝试了双/三循环,但它嵌套在非常讨厌的代码中。
也许这个问题可以使用递归或其他聪明的技巧来解决?

附加示例:

输入
b = [0,1,5,6,7,9];

输出
[
[0,1],
[5,6,7],
[9]
]

最佳答案

使用 Array#reduce 进行迭代,并且每当最后一个数字不等于新数字 - 1 时,添加另一个子数组。将当前数字添加到最后一个子数组:

const a = [0,1,2,5,6,9];

const result = a.reduce((r, n) => {
const lastSubArray = r[r.length - 1];

if(!lastSubArray || lastSubArray[lastSubArray.length - 1] !== n - 1) {
r.push([]);
}

r[r.length - 1].push(n);

return r;
}, []);

console.log(result);

关于Javascript将数组中的数字与一系列连续数字分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47906850/

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