检查子数组是否在其他数组ExtJS中

时间:2018-04-04 22:34:30

标签: javascript arrays extjs

我想检查一个数组是否包含ExtJs中的其他数组 我试过这个但没有成功

if( [2,1] in [1,2,3]){
     console.log("true"); }

我知道我可以手工制作,但是有直接的方法

3 个答案:

答案 0 :(得分:1)

var arr1=[2,1],
    arr2=[1,2,3];

if(Ext.Array.merge(arr1,arr2).length===arr2.length){
    console.log('HELLO!');
}

如果您正在使用Extjs,使用此方法可以在没有函数和cicles的情况下获胜

简单地合并数组。

答案 1 :(得分:0)

您需要遍历数组以检查值是否在其中:

function inArray(v, a){
  for(var i=0,l=a.length; i<l; i++){
    if(a[i] === v){
      return true;
    }
  }
  return false;
}
function allInArray(t, a){
  for(var i=0,l=t.length; i<l; i++){
    if(!inArray(t[i], a)){
      return false;
    }
  }
  return true;
}
var yourArray = [1, 2, 3], tests = [2, 1];
console.log(allInArray(tests, yourArray));
console.log(allInArray([2, 4, 1], yourArray));

// another way
function allIn(t, a){
  return t.length === t.map(x => +a.includes(x)).reduce((n, v) => n+v);
}
console.log(allIn(tests, yourArray));
console.log(allIn([3, 4], yourArray));

答案 2 :(得分:0)

在extjs中,你有Ext.each函数来循环遍历数组

var array_1 = [2,1];
var array_2 = [1,2,3];
Ext.each(array_1,function(value_of_arr1){
    if(array_2.indexOf(value_of_arr1) == -1){
        console.log('array_1 value doesnt exist');
        return;
    }else{
        console.log('array_1 value does exist');
        return;
    }
});

在上面的代码中,从if条件返回-1 如果是的价值 在array_2

中找不到array_1

如果找到值,则返回值所在的数组索引