如何从JavaScript函数返回多个值
How to return multiple values from JavaScript function
我有一个函数正在验证表单输入,我需要返回经过验证的值。现在,我正在使用if else
子句来调用各个验证器,所以我的函数只返回第一个经过验证的字段(age
),但我想将age
、lastName
和firstName
返回给调用函数。
如何获取要返回的多个值?
validationForm(numberOfPassengers){
for (let i=0; i < numberOfPassengers; i++) {
let firstName = ReactDOM.findDOMNode(this.refs['firstName'+typeOfPassenger+i]).value;
let lastName = ReactDOM.findDOMNode(this.refs["lastName"+typeOfPassenger+i]).value
let age = ReactDOM.findDOMNode(this.refs['age'+typeOfPassenger+i]).value;
let regex = /^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$/;
let resultFirstName = firstName.match(regex);
let resultLastName = firstName.match(regex);
if(age <= 0){
('.age-alignment').addClass('error-border');
}else{
return age;
};
if(resultFirstName){
return firstName;
}else{
('.first-name').addClass('error-border');
};
if(resultLastName){
return lastName;
}else{
('.last-name').addClass('error-border');
};
}
}
Javascript没有从函数返回多个对象的概念。相反,您必须建立一个本身包含以下值的对象:
var returnObject = {};
if(age <= 0){
('.age-alignment').addClass('error-border');
}else{
returnObject.age = age;
};
if(resultFirstName){
returnObject.firstName = firstName;
}else{
('.first-name').addClass('error-border');
};
if(resultLastName){
returnObject.lastName = lastName;
}else{
('.last-name').addClass('error-border');
};
return returnObject;
我试图简化逻辑。如果不需要,也没有理由添加else语句。另外,看看我是如何用要作为参数传递的变量来调用第二个函数的。
function other_function(age,last_name, first_name){
console.log("I have access to all of these:",age,last_name,first_name)
}
validationForm(numberOfPassengers){
for (let i=0; i < numberOfPassengers; i++) {
let firstName = ReactDOM.findDOMNode(this.refs['firstName'+typeOfPassenger+i]).value;
let lastName = ReactDOM.findDOMNode(this.refs["lastName"+typeOfPassenger+i]).value
let age = ReactDOM.findDOMNode(this.refs['age'+typeOfPassenger+i]).value;
let regex = /^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$/;
let resultFirstName = firstName.match(regex);
let resultLastName = firstName.match(regex);
if(age <= 0){
('.age-alignment').addClass('error-border');
}
if(!resultFirstName){
('.first-name').addClass('error-border');
};
if(!resultLastName){
('.last-name').addClass('error-border');
}
return other_function(age,first_name,last_name)
}
}
相关文章:
- 使用返回函数sinde.attr()jquery元素
- 从自执行函数返回函数的Javascript性能命中率
- Node Express Handlebars帮助程序未返回函数的结果
- 未在Firefox中执行PageMethod的返回函数
- 对返回函数的函数感到困惑
- 从承诺返回不返回函数会导致警告
- 从函数返回函数而不调用返回的函数
- Javascript,闭包中的返回函数如何与外部函数连接
- 为什么Coderbyte.com's的Javascript模板喜欢返回函数的原始参数
- 对象函数返回函数而不是值
- 从外部函数(数组)了解返回函数(x)
- 从Javascript类对象返回函数
- 调用Typescript setter don't返回函数,尽管关联的getter可以工作
- 使用依赖注入在 JavaScript 中返回函数
- 通过单击JSP和javascript加载两个返回函数
- 需要说明:无法理解返回函数的javascript
- 简单的onClick返回函数不起作用
- 为什么这个闭包返回函数
- JS函数返回函数供以后使用-未定义参数
- Coffeescription类中的方法返回函数而不是字符串