网站首页 > 技术文章 正文
js查找数组中符合条件元素的几种方法
一、利用for循环进行查找
- let arr = [
- {name: 'zhangsan', age: 18},
- {name: 'lisi', age: 17},
- {name: 'xiaoming', age: 18},
- ],
- result = []
- for (let item of arr){
- if(item.age === 18){
- result.push(item);
- }
- }
- console.log(result);// [{name: 'zhangsan', age: 18},{name: 'xiaoming', age: 18}]
二、filter() 方法
注意:
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter() 不会对空数组进行检测。
filter() 不会改变原始数组。
- let arr = [
- {name: 'zhangsan', age: 18},
- {name: 'lisi', age: 17},
- {name: 'xiaoming', age: 18},
- ];
- let result = arr.filter(item=>item.age === 18)
- console.log(result);// [{name: 'zhangsan', age: 18},{name: 'xiaoming', age: 18}]
三、find()方法
注意:
find()方法只返回数组中满足条件的第一个元素,并非所有元素
当数组中的元素在条件返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined
find() 对于空数组,函数是不会执行的。
find() 并没有改变数组的原始值。
- let arr = [
- {name: 'zhangsan', age: 18},
- {name: 'lisi', age: 17},
- {name: 'xiaoming', age: 18},
- ];
- let result = arr.find(item=>item.age === 18)
- console.log(result);// {name: 'zhangsan', age: 18}
附:javascript查找一个数组中符合某个条件的值,并将符合条件的值存入新的数组
1. 利用find函数和es6箭头函数,下面方法取到数组中满足条件的第一个元素;
- var newArray = {};//新对象
- var array = [
- {name:'aiai',age:18},
- {name:'sisi',age:18},
- {name:'lulu',age:18},
- {name:'sisi',age:19}
- ];
- //查找符合条件值并存入新数组
- newArrar = this.array.find((item) => {
- if(item.name === 'sisi'){
- return item
- }
- })
- //此时 newArray = {name:'sisi',age:18}
2. 查找符合条件的所有元素
- var newArray = [];//新数组
- var j = 0;
- var array = [
- {name:'aiai',age:18},
- {name:'sisi',age:18},
- {name:'lulu',age:18},
- {name:'sisi',age:19}
- ]; //目标数组
- //查找符合条件值并存入新数组
- for(let i in array){
- if(array[i].name == 'sisi'){
- newArray[j++] = array[i]
- }
- }
- //此时 newArray = [{name:'sisi',age:18},{name:'sisi',age:19}]
猜你喜欢
- 2024-11-15 ES6中数组新增的方法-超级好用(es6新增数组方法 set map)
- 2024-11-15 2023-05-16:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。
- 2024-11-15 ES6中对数组的扩展(es6数组语法)
- 2024-11-15 uni-app基于vue开发小程序与标准vue开发新增点
- 2024-11-15 JavaScript数组方法-高阶函数hope
- 2024-11-15 vue uni-app 数组的操作方法:filter()、map()、forEach()、unsh...
- 2024-11-15 js判断字符串是否在数组中(js判断字符串包含数字)
- 2024-11-15 15个你应该知道的JavaScript的重要数组方法
- 2024-11-15 碎片时间学编程「316]:提供的函数比较器返回两个数组对称差异
- 2024-11-15 202012-前端开发vue项目代码中的亮点和疑点
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-