用法简介:
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)
只需一行代码搞定!