用法简介: 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); // undefinedcon
用法简介:
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)
只需一行代码搞定!
参考文档:
- Array.prototype.find() | MDN