arr.find()和arr.filter()函数说明

文章介绍了JavaScript中的数组方法find和filter的用法,通过示例展示了如何利用这两个方法查找符合条件的元素。find方法返回数组中第一个匹配条件的元素,而filter则返回所有匹配条件的新数组。在示例中,涉及了基于属性和条件的复杂查找操作,如按性别和年龄筛选人员信息。
摘要由CSDN通过智能技术生成

arr.find() 是 JavaScript 数组的一个方法,用于查找数组中第一个符合条件的元素。

const arr = [2, 4, 6, 8];
const found = arr.find(element => element > 5);
console.log(found); // 6

除了简单的比较之外,我们还可以利用 find() 方法构建更复杂的查找条件。例如

const people = [
  { name: '张三', age: 25, gender: 'male' },
  { name: '李四', age: 30, gender: 'male' },
  { name: '王五', age: 28, gender: 'female' }
];
const found = people.find(person => person.gender === 'female' && person.age > 25);
console.log(found); // {name: "王五", age: 28, gender: "female"}

arr.filter()是找到所有符合条件的记录并以新数组形式展示

const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(number => number % 2 === 0);

console.log(evenNumbers); // [2, 4]

更复杂一点的例如:

const people = [
  { name: '张三', age: 25, gender: 'male' },
  { name: '李四', age: 30, gender: 'male' },
  { name: '王五', age: 28, gender: 'female' }
];
const found = people.filter(person => person.gender === 'female' && person.age > 25);
console.log(found); //[{name: "王五", age: 28, gender: "female"},{ name: '王五', age: 28, gender: 'female' }] 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,`arr.findIndex`方法常用来查找数组中满足条件的第一项元素的下标。它接受一个回调函数作为参数,该回调函数会被应用于数组的每一项元素,直到找到满足条件的元素为止。如果找到了满足条件的元素,则返回该元素的下标;否则返回-1。 例如,给定数组`const arr = [1, 2, 3, 4, 5, 3, 3, 2, 4, 5]`,我们想找到第一个大于2的元素的下标,我们可以使用`arr.findIndex`方法来实现:`const index = arr.findIndex(item => item > 2)`。在这个例子中,找到的元素是3,它的下标是2。所以,`index`的值将为2。 需要注意的是,`arr.findIndex`方法的回调函数可以采取两种不同的写法:一种是使用函数体的形式,另一种是使用箭头函数的简写形式。在上述例子中,我们同时给出了这两种写法的示例。 另外,在数组中查找字符串或者数字类型的元素的下标时,我们也可以使用`indexOf()`方法来实现。例如,给定数组`let numberList = [1, 2, 3, 4]`,我们可以使用`numberList.indexOf(2)`来查找数字2的下标,返回值将是1。同样地,对于包含对象元素的数组,我们可以使用`findIndex`方法来查找满足条件的元素的下标。例如,给定数组`let objList = [{name:'john'}, {name:'jack'}]`,我们可以使用`objList.findIndex(obj => obj.name === 'jack')`来查找`name`属性为'jack'的对象的下标,返回值将是1。 总结起来,`arr.findIndex`方法可以用来查找数组中满足条件的第一项元素的下标,而`indexOf()`方法则更适用于查找字符串或者数字类型的元素的下标。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [js findIndex方法](https://blog.csdn.net/Polohert/article/details/124386464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [js Array indexOf() findIndex 查询元素索引方法](https://blog.csdn.net/seimeii/article/details/129724400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值