• 35648

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

lodash compact()方法的实现

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/0710/6852.html 1190000019714869

创建一个新数组,包含原数组中所有的非假值元素。例如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;
  }

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

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!