创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0, "", undefined, 和 NaN 都是被认为是“假值”。

以下是自己实现的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的实现

    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;  }

这样写的好处是 传入一个字符串会返回一个数组 好像也没其他作用,为什么不直接判断是否是数组呢?