使用javascript或typescript检查数组中是否包含每个值
我有以下类型的2个阵列。我想检查使用javascript或typescript检查数组中是否包含每个值,javascript,typescript,vue.js,Javascript,Typescript,Vue.js,我有以下类型的2个阵列。我想检查值to的每个值,因为checkar应该在实际值中。如果实际值r中缺少某些值,则应返回0或false。此外,我还有一个运算符变量,它的可能值和/或。我为或操作符编写了解决方案,但对AND操作符没有概念 ActualArr = [1,2,3,4,5,6,7,21,25,35,50,132]; ValuesToBeCheckArr = [2,3,50,132]; Operator = AND/OR if(Operator == AND) { //check ev
值to的每个值,因为checkar
应该在实际值中。如果实际值r
中缺少某些值,则应返回0或false。此外,我还有一个运算符变量,它的可能值和/或。我为或操作符编写了解决方案,但对AND操作符没有概念
ActualArr = [1,2,3,4,5,6,7,21,25,35,50,132];
ValuesToBeCheckArr = [2,3,50,132];
Operator = AND/OR
if(Operator == AND) {
//check every value of ValuesToBeCheckArr should be in the ActualArr
} else if(Operator == OR) {
//check at least one value of ValuesToBeCheckArr should be in the ActualArr
const checkIncluded = (arr1, arr2) => arr1.some(item => arr2.includes(item));
const isIncluded1 = checkIncluded(["1", "2"], ["3"]) // true
}
您必须将.some
更改为.every
。它将检查数组中的每个项是否满足以下条件:
ActualArr = [1,2,3,4,5,6,7,21,25,35,50,132];
ValuesToBeCheckArr = [2,3,50,132];
Operator = AND/OR
if(Operator == AND) {
//check every value of ValuesToBeCheckArr should be in the ActualArr
const checkIncluded = (arr1, arr2) => arr1.every(item => arr2.includes(item));
const isIncluded1 = checkIncluded(ValuesToBeCheckArr, ActualArr)
} else if(Operator == OR) {
//check at least one value of ValuesToBeCheckArr should be in the ActualArr
const checkIncluded = (arr1, arr2) => arr1.some(item => arr2.includes(item));
const isIncluded1 = checkIncluded(["1", "2"], ["3"]) // true
}
运算符==和
==>使用与下面类似的组合
const actualar=[1,2,3,4,5,6,7,21,25,35,50132];
常量值stobecheckar=[2,3,50132];
const result=ValuesToBeCheckArr.every(v=>actualar.some(a=>v==a))
控制台日志(结果)代码>以下实现将起作用:-
功能检查包含(执行器、检查器、操作员){
让i包括=运算符==“和”?
实际值(项目=>checkArr.includes(项目)):
实际部分(项目=>checkArr.includes(项目))
包括退货;
}
日志(检查包含([“1”、“2”、“3”]、[“1”、“3”]、“和”);
日志(检查包含([“1”、“2”、“3”]、[“1”、“3”]、“或”)代码>