这两个JS函数有什么区别?

Mon*_*ica 3 javascript

我目前有2个函数执行相同的操作,这是一个名为numbers的函数,如果传递的所有参数都是Number类型,则返回true.否则,该函数应返回false.该函数应该接受任意数量的参数.

所以我做了以下功能:

var numbers = function(numList) {
    for(var i = 0; i < numList.length; i++) {
        if ( typeof numList[i] !== 'number' ) {
           return false;
        }
    }  
    return true;
}
Run Code Online (Sandbox Code Playgroud)

但后来,我找到了另一个解决方案.

var numbers = function() {
    return Array.prototype.filter.call(arguments, function(argument) {
      return typeof argument !== 'number';
    }).length === 0;
}
Run Code Online (Sandbox Code Playgroud)

最后的解决方案虽然更先进,但我想知道这两个功能的优缺点,哪个更好?也许我的解决方案会在某些时候导致一些错误?

dec*_*eze 6

第一个函数快捷方式,即它false在遇到非数字时立即返回.第二个函数总是处理所有输入并在最后决定.

第一个功能更有效.