js 基础之filter(v => !!v)

好记性不如烂笔头,记给自己和有需要的小伙伴!
无意中,在网上看到了这么一句代码:

FormatText.prototype.filterEntries = function() {
  return this._data = this._data.filter(v => !!v);
};

不明其意,百度一番有如下解释:
image.png
具体就是说,v => !!v通过应用NOT两次将其强制为布尔类型,获取数组中v。因此,过滤器函数基本上是从中删除任何虚假值(0,null,undefined)。
实际上,为什么不直接返回值,而不是NOT NOT,如下:

v => v

image.png
filter函数的callback为数组中的每个元素调用一次提供的函数,并构造一个包含所有值的新数组,返回强制转换true的值callback仅针对已分配值的数组索引调用;对于已删除或从未分配值的索引,不会调用它。callback仅跳过不通过测试的数组元素,并且不包含在新数组中

你可能感兴趣的:(javascript)