Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用可变参数数检查多个或多个条件_Javascript - Fatal编程技术网

Javascript 如何使用可变参数数检查多个或多个条件

Javascript 如何使用可变参数数检查多个或多个条件,javascript,Javascript,我正在检查输入标记的数量是否为空 if(inputValue1.length === 0 || inputValue2.length === 0 || inputValue3.length === 0 || inputValue4.length === 0) 但是我编码的次数越多,我发现我必须检查输入的变量数标记是否为空或没有几次 因为上面的代码是硬编码的,它只检查4个输入标记值,所以我想创建一个函数,该函数检查OR运算符给定的变量数量(给定输入标记元素)的条件。例如: checkEm

我正在检查输入标记的数量是否为空

if(inputValue1.length === 0 || inputValue2.length === 0 || 
   inputValue3.length === 0 || inputValue4.length === 0)
但是我编码的次数越多,我发现我必须检查
输入的变量数
标记是否为空或没有几次

因为上面的代码是硬编码的,它只检查4个
输入
标记值,所以我想创建一个函数,该函数检查OR运算符给定的变量数量(给定
输入
标记元素)的条件。例如:

checkEmptyInput(multiple_elements){}

使传递多个随机参数成为可能,但仍使用OR运算符检查条件。我想不出该如何完成这个功能。

使用列表。例如,如果您的所有输入都在某个容器中(例如,
表单
),则可以使用
querySelectorAll
,将它们作为列表获取:

var inputs = document.querySelectorAll("selector-for-the-form input");
它返回一个长度为
的集合,其中每个
输入可通过
[0]
[1]
等获得。因此:

function checkEmptyInput(list) {
    var index;
    for (index = 0; index < list.length; ++index) {
        if (list[0].value.length === 0) {
            return true; // There's an empty one
        }
    }
    return false; // There are no empty ones
}
函数checkEmptyInput(列表){
var指数;
对于(索引=0;索引
使用列表。例如,如果您的所有输入都在某个容器中(例如,
表单
),则可以使用
querySelectorAll
,将它们作为列表获取:

var inputs = document.querySelectorAll("selector-for-the-form input");
它返回一个长度为
的集合,其中每个
输入可通过
[0]
[1]
等获得。因此:

function checkEmptyInput(list) {
    var index;
    for (index = 0; index < list.length; ++index) {
        if (list[0].value.length === 0) {
            return true; // There's an empty one
        }
    }
    return false; // There are no empty ones
}
函数checkEmptyInput(列表){
var指数;
对于(索引=0;索引
您可以尝试这样的方法

var input1=[1,2]
,input2=[1,2]
,input3=[2,1];
功能测试(…args){
返回args.some(函数(arg){
返回arg.length==0;
});
};
var result1=测试(输入1、输入2、输入3);
var result2=测试([],输入1,输入2);

console.log(result1,result2)您可以尝试类似的方法

var input1=[1,2]
,input2=[1,2]
,input3=[2,1];
功能测试(…args){
返回args.some(函数(arg){
返回arg.length==0;
});
};
var result1=测试(输入1、输入2、输入3);
var result2=测试([],输入1,输入2);

console.log(result1,result2)您可以将所有变量传递给一个函数,该函数可以减少其参数:

ES2015版本:

function checkEmptyInput(...multiple_elements) {
    return multiple_elements.reduce((a,b) => a || b, false);
}
function checkEmptyInput() {
    return [].reduce.call(arguments, function(a,b) { return a || b; }, false);
}
ES5版本:

function checkEmptyInput(...multiple_elements) {
    return multiple_elements.reduce((a,b) => a || b, false);
}
function checkEmptyInput() {
    return [].reduce.call(arguments, function(a,b) { return a || b; }, false);
}
按照你的描述使用它

checkEmptyInput(variable1, variable2, variable3);

您可以将所有变量传递给一个函数,该函数可以减少其参数:

ES2015版本:

function checkEmptyInput(...multiple_elements) {
    return multiple_elements.reduce((a,b) => a || b, false);
}
function checkEmptyInput() {
    return [].reduce.call(arguments, function(a,b) { return a || b; }, false);
}
ES5版本:

function checkEmptyInput(...multiple_elements) {
    return multiple_elements.reduce((a,b) => a || b, false);
}
function checkEmptyInput() {
    return [].reduce.call(arguments, function(a,b) { return a || b; }, false);
}
按照你的描述使用它

checkEmptyInput(variable1, variable2, variable3);

0您需要一个通用函数,该函数可以接受任意数量的参数,并且可以返回错误:

下面的函数将接受一个回调和n个参数。回调函数将返回两个参数,第一个是状态true或false,第二个是消息(如果状态为false)

function validateAll(callback, ...inputs){
    var len = inputs.length;
  for(var i=0; i < len; i++){
    if(inputs[i].value.length === 0){
        return callback(false, inputs[i].getAttribute('name') + 'Input not valid');
    }
  }
  return callback(true, null);
}

validateAll(function(status, msg){
    console.log(status, msg);
},input1,input2, input3);
函数validateAll(回调,…输入){
var len=输入。长度;
对于(变量i=0;i
0您需要一个通用函数,该函数可以接受任意数量的参数,并且可以返回错误:

下面的函数将接受一个回调和n个参数。回调函数将返回两个参数,第一个是状态true或false,第二个是消息(如果状态为false)

function validateAll(callback, ...inputs){
    var len = inputs.length;
  for(var i=0; i < len; i++){
    if(inputs[i].value.length === 0){
        return callback(false, inputs[i].getAttribute('name') + 'Input not valid');
    }
  }
  return callback(true, null);
}

validateAll(function(status, msg){
    console.log(status, msg);
},input1,input2, input3);
函数validateAll(回调,…输入){
var len=输入。长度;
对于(变量i=0;i
@T.J.Crowder-Thx征求您的意见:)@T.J.Crowder-yup在上面写道“检查4个输入标记值”@T.J.Crowder-Thx征求您的意见:)@T.J.Crowder-yup在上面写道“检查4个输入标记值”谢谢!(这是一个很好的答案。作为一个adon,如果函数返回未验证字段的名称,则效率会更高。如果您想将其作为加载项进行检查,我已经编写了该函数。谢谢!我感到非常愚蠢,我想不到这一点:(这是一个很好的答案。作为一个adon,如果函数返回未验证字段的名称,则效率会更高。如果您想作为加载项进行检查,我已经编写了该函数。