我有一个带有多个输入的函数,我希望在调用该函数时可以选择。每个输入都是不同的类型,例如字符串、数组或数字。使用这样的代码:
function doStuff(str, arr, num){
if typeof(str) != 'undefined' { $('#stringDiv').text(str)}
if typeof(arr) != 'undefined' {
for(var i=0; i < arr.length; i++){
$('<li>').text(arr[i]).appendTo('#arrayUl')
}
}
if typeof(num) != 'undefined' { $('#numberDiv').text(num)}
}
jQuery(document).ready(function() {
doStuff("i'm a string", [1,2,3,4,5], 7)
})
我可以解释我的参数可能是可选的这一事实,但不能解释这样一个事实,即如果我缺少arr
,那么我的数字参数 ( num
) 将排在第二位,而不是第三位。
为了解决这个问题,我还可以将我的输入转储到一个数组中,然后对数组进行排序并查找每种类型的这个,就像我在这个小提琴中所做的那样。这似乎很草率,并且根据我在其函数中看到的执行此操作的库的数量,似乎可能有更好的方法。有一个更好的方法吗?还是循环论证并寻找我最好的选择?