gpt4 book ai didi

javascript - 过滤值数组并将它们分组

转载 作者:行者123 更新时间:2023-11-30 09:15:52 26 4
gpt4 key购买 nike

我有一个数组,我需要对其进行排序并将过于相似的值放在另一个数组中。

例如

function group (arrData) {
for (let i = 0; i < array.length - 1; i++) {
if (
(array[i + 1] - array[i]
) < 5) {
return array[i];
}
}
}

const arr = [1,15,16,33,35,37,55,58]
const newArr = arr.map((item,index,array) => group(array));

但它只返回一个值。我该如何解决这个问题?

至于所需的输出:[[15,16],[33,35,36],[55,58]]

最佳答案

您可以对数组进行排序,如果不是按升序排列,然后通过检查实际值和前导值来减少该数组。

如果 dela 大于或等于 5 或者如果您得到了数组的第一个值,则将一个空数组压入结果集。

然后将值压入结果集中的最后一个数组。

var array = [1, 15, 16, 33, 35, 37, 55, 58],
result = array
.sort((a, b) => a - b) // not necessary with sorted data
.reduce((r, v, i, a) => {
if (!i || v - a[i - 1] >= 5) r.push([]);
r[r.length - 1].push(v);
return r;
}, []);

console.log(result);

关于javascript - 过滤值数组并将它们分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55181591/

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