2017-08-02 92 views
2
function bouncer(arr) { 
    // Don't show a false ID to this bouncer. 

    for (var i = 0; i < arr.length; i++) { 
     if (!arr[i]) { 
      arr.splice(i, 1); 
      i = i-1; 
     } 
    } 
    return arr; 

} 

bouncer([7, "ate", "", false, 9]); 

我不明白感叹号如何在条件中工作。我知道这是用来否定,但我不知道如何。请解释此功能如何消除负值

+0

*如果不是常用3 [I] * ... –

+0

'alert(!false); alert(!null); alert(!undefined);'... – baao

+0

@per svensson no it means not ... –

回答

5
if (!arr[i]) { 

手段基本上如果不常用3 [I]。这个工程在JS的值要么truthy或falsy,所以只是falsy值会通过上条件(如果不是falsy ===真):

null,undefined,"",0,false