javascript - 检查一行数组值中的 3 个是否相同

标签 javascript arrays

我想检查我的数组是否有 3 个连续的相同值。

例如

var arr = ["g", "z", "z", "z" ]; // Must be true

var arr = ["g", "z", "z", "v" ,"b", "b", "b"]; // Must be true

var arr = ["z", "g", "z", "z"]; // Must be false

JSFIDDLE

我们如何检查它?

最佳答案

可能最高效的方法是仅迭代输入数组一次并计算连续相等元素的条纹。当找到足够长的序列时,立即返回 true。到达终点时,返回false。

function hasConsecutive(arr, amount) {
    var last = null;
    var count = 0;
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] != last) {
            last = arr[i];
            count = 0;
        }
        count += 1;
        if (amount <= count) {
            return true;
        }
    }
    return false;
}

console.log(hasConsecutive(["g", "z", "z", "z"], 3))
console.log(hasConsecutive(["g", "z", "z", "z"], 4))

关于javascript - 检查一行数组值中的 3 个是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43308817/

相关文章:

php - 将多个值作为参数传递给 mysql 查询

javascript - 如何检查数组在 javascript 中是否相等?

php - 使用 PHP 将数组中的值插入 mysql

javascript - Angular 模板 src 变量不起作用

javascript - d3.select() 在转换后不会立即工作

javascript - 使用 chrome 开发人员工具在 html 页面中编辑嵌入式 Javascript

c - 如何使用memcpy将一个字符串复制到结构中的另一个字符串(char **)?

python - 如何调用 Numpy 数组中的元素?

javascript - 节点JS : Pass object from HTML to Server

javascript - 如何显式地将表单中的文本框设置为脏?