Javascript函数参数检查
Javascript function parameters checking
我有一个函数,有4个参数用于构建json请求。我需要检查参数"未定义"/空值
function funName(param1, param2, param3, param4) {
if (param1 !== '' && param2 !== '' && param3 !== '' && param4 !== '') {
url = https://example.com/api/posts.json?' + param1 + param2 + param3 + param4;
}
else if {
if (param1 == '' && param2 !== '' && param3 !== '' && param4 !== '') {
url = https://example.com/api/posts.json?' + param2 + param3 + param4;
}
// code
};
如何检查更优雅?
我建议对arguments
对象进行迭代:
funName(param1, param1, param1, param1) {
url = 'https://example.com/api/posts.json?';
var i;
for (i=0; i<arguments.length; i++) {
if (arguments[i] && arguments[i] !== '') {
url += arguments[i];
}
}
// code
}
这段代码可以处理不确定数量的参数。如果您对传入的参数数量有信心,您可以省略arguments
位,而只是创建一个包含所有参数的数组,并遍历该数组。
请注意,除非您将完全格式化的查询参数作为参数传递——并使用分隔符——否则这实际上可能无法开箱即用。我不确定实际传递的参数是什么样子的,所以我不能肯定。
您可以这样做:
function funName(param1, param2, param3, param4) {
var url = 'https://example.com/api/posts.json?' +
(param1 || '') + (param2 || '') + (param3 || '') + (param4 || '');
// rest of your code.
}
或使用ES6:
function funName(/* params */) {
var url = 'https://example.com/api/posts.json?' +
[...arguments].filter(p => p).join('');
// rest of your code.
console.log(url);
}
funName('a=1', '&b=2', '');
您可以使用Array.prototype.forEach来添加函数的每个参数,如果它有一个值…而且,每个形式参数(param1, param1等)都有相同的名称…它们应该是独一无二的!
function funName(param1, param2, param3, param4) {
var url = 'https://example.com/api/posts.json?';
Array.prototype.forEach.call(arguments,function(argumentItem) {
if (argumentItem) {
url += argumentItem;
}
});
return url;
}
console.log(funName('', 'a', 'n', 'c'));
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 检查事件处理程序参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- Javascript检查参数是否为零值
- 如何检查具有参数的函数
- 检查参数在 URI 中可用
- 检查参数时陷阱错误
- 检查参数是否传递给Java Script函数
- 参数检查库
- 如何检查 javascript 函数及其参数
- 如何检查注入函数的参数
- 检查参数
- 如何检查参数是否在JavaScript函数定义中定义
- Bukkit ArrayIndexOutOfBoundsException检查参数
- 在javascript中检查参数是否被赋值
- 如何检查参数是否存在于node.js中的查询字符串中
- 检查参数是构造函数还是javascript中的实例
- 如何检查参数['可以是变量']是否在数组中
- 检查参数中是否存在数组
- Javascript -在使用参数之前检查参数