我目前有两个函数,这两个函数都是判断传递参数是否全部为数字类型的功能。其中一个名为"numbers"的函数,如果参数全部为数字类型,则返回true;否则,函数应该返回false。该函数可以接受任意数量的参数。
因此,我创建了以下函数:
var numbers = function(numList) {
for(var i = 0; i < numList.length; i++) {
if ( typeof numList[i] !== 'number' ) {
return false;
}
}
return true;
}
但后来,我发现另一个解决方案。
var numbers = function() {
return Array.prototype.filter.call(arguments, function(argument) {
return typeof argument !== 'number';
}).length === 0;
}
虽然最后一种解决方案更高级,但我想知道这两个函数的优缺点,并且,哪一个更好?也许我的解决方案在某些时候会出现错误?