我想检查一个数组是否包含ExtJs中的其他数组 我试过这个但没有成功
if( [2,1] in [1,2,3]){
console.log("true"); }
我知道我可以手工制作,但是有直接的方法
答案 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如果找到值,则返回值所在的数组索引