lodash數組篇之2 compact()

建立一個新數組,包含原數組中全部的非假值元素。例如false, null, 0, "", undefined, 和 NaN 都是被認爲是「假值」。es6

如下是本身實現的compact()數組

compact:(array)=>{
        let result = []
        //判斷參數是不是數組 若是不是數組 直接返回一個空數組
        //也能夠用es6提供的Array.isArray(array)來判斷 更簡潔
        if(!Object.prototype.toString.call(array)==='[object Array]') {
            return result
        }
        array.forEach(element => {
            if(element) {
                result.push(element)
            }
        });
        return result
    }

lodash的實現prototype

compact:(array)=>{
        var index = -1,
        length = array == null ? 0 : array.length,
        resIndex = 0,
        result = [];
  
    while (++index < length) {
      var value = array[index];
      if (value) {
        result[resIndex++] = value;
      }
    }
    return result;
  }

這樣寫的好處是 傳入一個字符串會返回一個數組 好像也沒其餘做用,爲何不直接判斷是不是數組呢?code

相關文章
相關標籤/搜索