JS中filter()方法的使用 |
您所在的位置:网站首页 › js中的map函数 › JS中filter()方法的使用 |
常见的场景:当我们从后端请求到数据列表时,我们需要对其中符合条件的数据进行筛选、当我们拿到数据,我们希望把英文首字母大写,数组去重等等。 1.定义和用法filter用于对数组进行过滤。 filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。 注意: filter() 不会对空数组进行检测;不会改变原始数组 2.语法 array.filter(function(currentValue,index,arr), thisValue)
实例1. 返回数组nums中所有大于5的元素。 let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let res = nums.filter((num) => { return num > 5; }); console.log(res); // [6, 7, 8, 9, 10]实例2. 对数组进行过滤,筛选出年龄大于 18岁的数据 const arr = [ { name: 'tom1', age: 23 }, { name: 'tom2', age: 42 }, { name: 'tom3', age: 17 }, { name: 'tom4', age: 13 }, ] const res = arr.filter(item => item.age > 18); console.log(res); //[{name: 'tom1',age: 23},{name: 'tom2',age: 42}] console.log(arr);
实例4.把一个Array中的空字符串删掉,可以这么写: var arr = ['A', '', 'B', null, undefined, 'C', ' ']; var r = arr.filter(function (s) { return s && s.trim(); // 注意:IE9以下的版本没有trim()方法 }); r; // ['A', 'B', 'C']实例5. 利用 filter 进行数组去重 function unique(arr) { return arr.filter(function(item, index, arr) { //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素 return arr.indexOf(item, 0) === index; }); } var arr = [1,1,'RUNOOB','RUNOOB',true,true,15]; console.log(unique(arr)) // [1, "RUNOOB", true, 15] var arr = ['apple','strawberry','banana','pear','apple','orange','orange','strawberry'] var temp_arr = arr.filter(function (element, index, self) { return self.indexOf(element) === index }) console.log(temp_arr)indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了,所以重复的元素仅会保留第一个位置的元素 转载于 https://www.liaoxuefeng.com/wiki/1022910821149312/1024327002617536 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |