Array.prototype.find()用法简介

用法简介:

find()方法会返回满足条件的第一个元素,如果没有,则返回undefined

var arr = [1, 2, 3, 4, 5];
var above5 = arr.find(ele => ele > 5);
var below5 = arr.find(ele => ele < 5);
console.log(above5); // undefined
console.log(below5); // 1

开发背景:

实际开发中,经常会要求实现搜索功能。比如,根据姓名/用户id等可以标明用户唯一身份的字段值,搜索出对应的某一条用户数据等等。

实现思路:

通常的实现思路是,先遍历所有数据,然后根据用户输入的唯一的字段值,找出用户想要的那一条数据,然后展示在页面上。

代码示例:

假设根据用户名查找某一个用户

let input_user_name = "tom" // 假设用户在输入框中输入的用户名

const users = [ // 假设后端返回的所有数据
  { id: 123, name: "dave", age: 23 },
  { id: 456, name: "chris", age: 22 },
  { id: 789, name: "bob", age: 21 },
  { id: 101, name: "tom", age: 25 },
  { id: 102, name: "tim", age: 20 }
]

我之前的写法是:

let userSearched 

users.forEach(user => {
  if (user.name === input_user_name) {
    userSearched = user
  }
})

在了解了ES6中的Array.prototype.find()之后,我重写了之前的代码:

let userSearched = users.find(user => user.name === input_user_name)

只需一行代码搞定!

参考文档:

  1. Array.prototype.find() | MDN

推荐阅读更多精彩内容