JavaScript,数组查找的三种方式对比,some()/find()/filter()
发布于 作者:苏南大叔 来源:程序如此灵动~

本文适用于nodejs
和浏览器环境,在JavaScript
的世界里面,这两个环境是有相通的地方的。本文展示了在数组中进行数据查找的一种方式。对于最近的文章来说,是可以在路由配置信息里面,进行路由数据查找的。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码经验文章。测试环境:win10
,nodejs@20.18.0
。
基础数据
出场的依然是苏南大叔的宠物列表。
let pets = [
{ name: "虎子", weight: 8, category: "狗" },
{ name: "二赖子", weight: 20, category: "狗" },
{ name: "老白", weight: 6, category: "猫" },
{ name: "黑猫", weight: 9, category: "猫" },
];
.some()
测试是否存在符合条件的数据,返回布尔。
let f1 = pets.some((pet) => pet.category == "狗");
console.log(f1);
输出:
true
.find()
找出第一个符合条件的数据,返回的不是数组。
let f2 = pets.find((pet) => pet.category == "猫" && pet.weight >= 6);
console.log(f2);
输出:
{ name: '老白', weight: 6, category: '猫' }
.filter()
找出符合条件的所有数据,返回的是个数组。
let f3 = pets.filter((pet) => pet.category == "猫" && pet.weight >= 6);
console.log(f3);
输出:
[
{ name: '老白', weight: 6, category: '猫' },
{ name: '黑猫', weight: 9, category: '猫' }
]
相关文章
- https://newsn.net/say/js-semicolon.html
- https://newsn.net/say/js-replace.html
- https://newsn.net/say/js-inarray.html


