gpt4 book ai didi

javascript - 如何从数组中提取数字序列?

转载 作者:行者123 更新时间:2023-12-03 07:16:29 25 4
gpt4 key购买 nike

我有以下数组:

var selectedRange = [
null,
null,
null,
null,
null,
null,
null,
null,
9, //sequences
10,//sequences
null,
12,
13,
14,
null,
null,
null,
null,
null,
20,
null,
null,
null,
null,
25,
null,
null,
null,
29,
30,
31,
32,
null,
null,
null,
null,
37,
38,
null,
40,
41,
42,
null,
44,
null,
null,
47,
null,
49,
50,
null,
null,
null,
null,
null,
null
]

我需要提取数字序列并且只提取数字 - 所以结果如下:

["9,10", "12,13,14", "20", "25", "29,30,31,32", "44", "47", "49,50"]

问题是我无法想出一个解决方案来提取序列,我想我需要一个递归函数来重复检查最后一个数字和当前数字是否在后面的部分 - 就像这里一样。 ..(!!prm && (prm - (index-1) ==1 )

let tempArr = [];
$.each(selectedRange, function (index, prm) {
if (!!prm && (prm - (index - 1) == 1) {
tempArr.push(prm); // need to loop this section with recursion
}
});

最佳答案

一个选项是加入逗号分隔的字符串,然后拆分空元素。添加最终过滤器以删除前导或尾随空元素。这可能不是最有效的。

var selectedRange = [null, null, null, null, null, null, null, null, 9, 10, null, 12, 13, 14, null, null, null, null, null, 20, null, null, null, null, 25, null, null, null, 29, 30, 31, 32, null, null, null, null, 37, 38, null, 40, 41, 42, null, 44, null, null, 47, null, 49, 50, null, null, null, null, null, null ]

console.log(
selectedRange.join(',').split(/,,+|^,|,$/).filter(Boolean)
)

(经过编辑以纳入来自@KooiInc 和@Ifaruki 的评论建议。)

关于javascript - 如何从数组中提取数字序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64907866/

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