检查数组是否有连续的三个连续数字

时间:2018-09-06 11:06:34

标签: javascript arrays regex

我有一个如下数组

[1,2,'b',4 ,'a','b',5,'o',7,1,3,'p',9,'p']

我想检查上面的数组是否在序列[1,2,3]中有三个连续的数字。

从上面的数组中,我希望输出如下所示

[7,1,3]->由于此序列是按序列进行的,因此不会被字母阻塞。

2 个答案:

答案 0 :(得分:1)

您可以采用一个临时数组,并用找到的数字填充它。对于找不到的任何数字,清空数组,然后检查长度。如果它具有所需的长度,则将数组推入结果集。

var array = [1, 2, 'b', 4, 'a', 'b', 5, 'o', 7, 1, 3, 'p', 9, 'p'],
    three = array.reduce((temp => (r, v) => {
        if (typeof v !== 'number') {
            temp = [];
            return r;
        }
        temp.push(v);
        if (temp.length === 3) {
            r.push(temp);
        }
        return r;
    })([]), []);

console.log(three);

答案 1 :(得分:0)

这是一种执行此操作的方法。只需遍历数组和secondpage_parser.find("a", {"data-track-id":"Google Map"})['href'] 个数字出现的次数即可。一旦计数变为3,您便拥有了魔数,否则将全部重置。正如@Rup所建议的。

count