惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
博客园 - 聂微东
有赞技术团队
有赞技术团队
The Cloudflare Blog
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
T
The Blog of Author Tim Ferriss
D
Docker
L
LangChain Blog
Vercel News
Vercel News
C
Check Point Blog
博客园 - Franky
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
人人都是产品经理
人人都是产品经理

博客园 - 草率的龙果果

window 11 Ultra5‑125H,Arrow Lake 卡顿解决办法 npm配置内网,git配置内网 jenkins打包完镜像更新页面没有变化 vue2 element ui dialog拖拽功能实现。 AI整理提示词 数字转换为中文数字 前端数据导出excel工具函数 自动监测数据有效传输率统计算法说明 echarts官方扩展vue组件vue-echarts实现链接两个charts实现联动 OPPO商店签名认领应用 iframe跨域通信(postMessage) 博文阅读密码验证 - 博客园 项目常用工具函数获取url参数和hash参数 Copilot键怎么改成Ctrl键? plus.downloader.createDownload 发送 POST 请求并携带 token vue2,vue3中在template中使用component组件is属性绑定jsx的vnode vue3 vite idea中control+鼠标单击不能跳转到文件定义的解决办法 vue/html-self-closing Vue2项目解决van-calendar 显示白色空白,需滑动一下屏幕,才可正常显示 Windows Terminal/Powershell 设置自动补全, 智能提示 【类似于mac的iterm2功能】 vue中使用axios获取不到响应头Content-Disposition的解决办法 博文阅读密码验证 - 博客园 vue2使用openlayers10.3.0版本组包 javascript跨域问题排查
ES7 新增方法:Array.prototype.some、Array.prototype.every
草率的龙果果 · 2024-12-23 · via 博客园 - 草率的龙果果

在前端开发中,我们经常需要对数组进行操作,如查找符合条件的元素、检查是否所有元素都满足条件等。ES7 新增了两个方法:Array.prototype.someArray.prototype.every,可以帮助我们更加简洁地完成这些任务。本文主要介绍这两个方法的用法及其相关知识。

Array.prototype.some

Array.prototype.some 方法用于检测数组中是否至少有一个元素满足条件。该方法接受一个回调函数作为参数,这个回调函数接受三个参数:

  • currentValue 当前元素
  • index 当前元素的索引
  • array 当前数组对象

如果回调函数返回 true,则 some 方法返回 true,否则返回 false

示例代码:

const arr = [1, 2, 3, 4, 5];
const hasEvenNum = arr.some(item => item % 2 === 0);
console.log(hasEvenNum); // true

上述代码中,arr.some(item => item % 2 === 0) 会检查数组 arr 中是否存在至少一个偶数,由于该数组中包含偶数 2 和 4,所以 hasEvenNum 的值为 true

Array.prototype.every

Array.prototype.every 方法用于检测数组中的所有元素是否都满足条件。该方法接受一个回调函数作为参数,这个回调函数接受三个参数:

  • currentValue 当前元素
  • index 当前元素的索引
  • array 当前数组对象

如果回调函数对于所有元素都返回 true,则 every 方法返回 true,否则返回 false

示例代码:

const arr = [1, 2, 3, 4, 5];
const isAllEven = arr.every(item => item % 2 === 0);
console.log(isAllEven); // false

上述代码中,arr.every(item => item % 2 === 0) 会检查数组 arr 中是否所有元素都是偶数,由于该数组中包含奇数 1 和 3,所以 isAllEven 的值为 false

区分 some 和 every

在实际的开发中,我们经常需要同时使用 someevery 方法来处理数组。如何区分这两个方法?

  • 如果我们需要判断数组中是否至少存在一个元素满足某个条件,就使用 some
  • 如果我们需要判断数组中的所有元素是否都满足某个条件,就使用 every

看到这里,可能会有同学想问:“那如果我要判断数组中是否存在至少一个元素不满足某个条件,应该使用哪个方法呢?”这个问题的解决方法是“反过来”,即使用 Array.prototype.some(item => !condition(item))

总结

  • Array.prototype.some 方法用于判断数组中是否存在至少一个元素满足某个条件。
  • Array.prototype.every 方法用于判断数组中的所有元素是否都满足某个条件。
  • 两个方法都接受一个回调函数作为参数,这个回调函数会对数组中的每个元素进行检查并返回布尔值。
  • 两个方法的返回值均为布尔值,表示是否满足条件。
  • 在实际开发中,根据需要选择合适的方法。

参考资料