解释此函数如何删除负值

时间:2017-08-02 10:50:52

标签: javascript arrays loops

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]);

我不明白感叹号在条件中是如何工作的。我知道它曾经否定,但我不理解如何。

1 个答案:

答案 0 :(得分:5)

if (!arr[i]) {

基本上是,如果不是arr [i] 。这有效,因为js中的值是truthy或falsy,所以只有falsy值才能通过上限条件(如果不是falsy === true ):

null,undefined,"",0,false