温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用js查找数组中符合条件的元素

发布时间:2023-05-09 15:40:03 来源:亿速云 阅读:108 作者:iii 栏目:开发技术

今天小编给大家分享一下怎么使用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}]

以上就是“怎么使用js查找数组中符合条件的元素”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI