2015-06-27 22 views
0

如果任何整数是负数或大于10,我试图返回null。当我使用此代码时,我得到null,null,null。而不是一次空。预期:null,取而代之:[null,null,null]。如果任何整数是负数或大于10,则返回null

这可能是什么原因?

function upArray(arr) { 
    for (var i = 0, len = arr.length; i < len; i++) { 
     var num = arr[i]; 
     if (num > 9 || num <= 0) { 
      var x = null; 
      return x; 
     } 
    } 
    { 
      var toNum = parseInt(arr.join('')) + 1; 
      arr = toNum.toString().split('').map(Number); 
      return arr; 
     } 
} 

http://jsfiddle.net/marcusdei/64xt6781/12/

回答

2

好了,让我套用可以肯定,如果我理解正确的要求:希望此功能

  1. 回报null如果阵列中的任何元素是0或以下10
  2. 返回0如果不是这样的话

让我建议直接实现上述内容:如果至少有一个集合的项目满足第一个条件,我们将使用.some()方法进行检查。如果是这样,我们将hasOutOfBoundries变量设置为true。

如果这是真的,我们会回来null,否则0

function upArray(arr) { 
    var hasOutOfBoundries = arr.some(function (item) { 
     return item > 10 || item < 0; 
    }); 
    return (hasOutOfBoundries) ? null : 0; 
}; 

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/some的具体使用方法.some();

相关问题