📅  最后修改于: 2023-12-03 15:16:04.482000             🧑  作者: Mango
JavaScript中的Array是一种用于存储多个值的数据结构,在处理数组时,经常需要找到满足特定条件的数组元素。这就引出了Array的find()方法,它可以帮助我们在数组中寻找符合条件的元素。
array.find(callback[, thisArg])
find()方法会返回第一个符合条件的元素,如果没有找到则返回undefined。
const numbers = [10,20,30,40,50];
// 查找第一个大于30的元素
const result = numbers.find((number) => {
return number > 30;
});
console.log(result); // 40
在以上示例中,我们通过find()方法在numbers数组中寻找第一个大于30的元素,并将结果存储在result变量中,最终将结果打印到控制台上。
const person = {
name: '张三',
age: 25,
books: [
{ title: 'JavaScript高级程序设计', author: 'Nicholas C. Zakas' },
{ title: 'JavaScript权威指南', author: 'David Flanagan' },
{ title: 'ES6标准入门', author: '阮一峰' },
],
findBookByTitle(title) {
return this.books.find((book) => book.title === title);
},
};
const book = person.findBookByTitle.call({ books: [...person.books, { title: '深入浅出Node.js', author: '朴灵' }] }, '深入浅出Node.js');
console.log(book); // { title: '深入浅出Node.js', author: '朴灵' }
在以上示例中,我们定义了一个person对象,该对象包含一个findBookByTitle()方法,用于在books数组中寻找符合条件的书籍。我们使用call()方法调用该方法,将thisArg参数设置为包含新书籍信息的对象,这样find()方法在执行回调函数时使用的this对象就变成了新的对象,即{ books: [...person.books, { title: '深入浅出Node.js', author: '朴灵' }] },最终返回的结果就是符合条件的新书籍对象。