定义
filter函数是数组里的一个方法,它主要起到的是过滤作用,filter()创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var arr = [23,8,54,45,71,87,245]
var str = arr.filter(function(v) {
return v > 45
})
console.log(str) -->输出[54,71,87,245]
注意事项
(1)filter() 不会对空数组进行检测;
(2)filter() 不会改变原始数组。
!!!需要注意的一点,filter函数存在一个隐式转换机制,我们在筛选数组里面的元素时,符合条件表达式的元素会被filter函数默认转换成true并通过return值返回并添加到一个新的数组当中,而不满足true,即默认被转换为false的元素会自动的过滤掉
// An highlighted block
var arr = [1,2,3,45,65,87,456,0,'',false,NaN,undefined,null]
var str = arr.filter(function(v) {
return v
})
console.log(str) -->输出[1, 2, 3, 45, 65, 87, 456]
这里我们并没有给判断条件,但最终return的数组中自动把0,’’,false,NaN,undefined,null这些元素给过滤掉了,而这六个值通过隐式转换都为false,因此在最终返回的新数组中并不包含原数组中所有的元素。于是我们知道filter和其他操作数组方法的最大不同点就是它自身的过滤机制会预先对数组进行一个筛选处理。
因此filter函数需慎用。文章来源:https://www.toymoban.com/news/detail-597346.html
使用
filter函数使用的地方非常的广泛简单举一个例子:
数组去重操作:对数组array中所有相同的元素进行去重复操作文章来源地址https://www.toymoban.com/news/detail-597346.html
// An highlighted block
function merge(array) {
return array.filter(function(item, index, arr)
{ //当前元素,在原始数组中的第一个索引===当前索引值,否则返回当前元素
return array.indexOf(item, 0) === index;
});}
var array = [2,2,’a’,’a’,true,true,15,17];console.log(merge(array));
// 输出结果:[2, “a”, true, 15 ,17]
到了这里,关于filter函数的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!