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,如果函数返回未验证字段的名称,则效率会更高。如果您想作为加载项进行检查,我已经编写了该函数。