javascript检查数组是否包含连续的多个元素

时间:2018-01-05 15:05:14

标签: javascript arrays include row

我想知道是否可以在一个数组中搜索连续的多个项目,类似于下面的内容。我已经用单独的包含完成了,但这不允许我判断这些元素是在一行还是在彼此附近。

数组未排序,数字必须按照定义的顺序排列。接近连续,特别是3.所以(12,33,45,34)内搜索的(23,34,45)将是错误的。

由于

var num = [];
num.push(12,23,34,45,56,67,78,89,90);

if(num.includes(23,34,45)){
  print('found');
}

2 个答案:

答案 0 :(得分:1)

使用ES6 Set()功能的另一种方法:



    var arr = [12,23,34,12,45,56,67,78,89,90];
    var set = new Set();
    arr.forEach(function(i){ set.add(i) });
    var foundCount = 0;
    
    var func = function(a){
        a.forEach(function(item) { 
          var oldLength = set.size; 
          set.add(item); 
          var newLength = set.size; 
          
          if(oldLength === newLength) { 
            foundCount++;
          }               
        });
        console.log('found ' + foundCount) 
    }
    
    var arr2 = [12, 34, 45];

    func(arr2);




答案 1 :(得分:0)

这有效,我希望我能正确理解你的问题。

function foo(num1, num2, num3, arr) {
    var exists = false;

    for(var i = 0; i < arr.length; i++) {
        if(arr[i] == num1 && arr[i+1] == num2 && arr[i+2] == num3) {
            exists = true;
        }
    }

    console.log(exists);
}

var array = [12,23,34,45,56,67,78,89,90];

foo(23,34,45,array);