携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
js数组filter()
数组的filter()方法是创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。若没有符合条件的元素则返回空数组。若有符合条件的元素,则将符合条件的元素放入新数组中。
filter()的语法
array.filter(function(currentValue,index,arr), thisValue)
function为必须的函数,数组中每个元素都会执行这个函数。
currentValue:必须,当前元素的值。
index:可选,当前元素的索引值。
arr:可选,当前元素属于的数组对象。
thisValue:可选,对象作为该执行回调时使用,传递给函数,用作this的值。 如果省略了thisValue,this的值为undefined。
菜鸟教程介绍filter()的地址:www.runoob.com/jsref/jsref…
数组中元素去重
数组中元素去重,并得到新数组:
// 定义数组
let arr = [6, 6, 8, 8, 9, 9, 86, 86, 96, 96, 98, 98];
// 数组元素去重,indexOf返回指定字符串在字符串中首次出现的位置。
let arrList = arr.filter((value, index, arr) => {
// 打印数组的所有值。
console.log(value);
// 如果当前索引等于首次出现时的索引,说明不为重复元素。
return index == arr.indexOf(value);
});
console.log(arrList);
筛选数组中的元素
获取数组中值大于80的元素,并得到新数组:
// 定义数组
let arr = [6, 6, 8, 8, 9, 9, 86, 86, 96, 96, 98, 98];
// 当箭头函数的函数体只有一个return语句时,可省略return和大括号{},获取数组中值大于80的元素。
let arrList = arr.filter((value) => value > 80);
console.log(arrList);
filter()特点
filter()不会对空数组进行检测。
filter()不会改变原数组。
函数执行次数等于数组长度。
函数内部的return:当return true时,元素满足筛选条件,放入新数组中。当return false时,元素不满足筛选条件,不放入新数组中。
filter()的返回值:返回筛选之后符合条件的元素组成的新数组,如果没有符合条件的元素则返回空数组。