JS数组方法some、every和find的使用详情


Posted in Javascript onOctober 05, 2021

1、some

在MDN中这样定义some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。

简而言之就是:它对数组中的每一项进行校验,只要有一项通过了就是true

  • 它只会返回truefalse
  • 它会对数组中的每一项进行检测,千万不要在some里面进行if else操作
  • 不要在return后面写truefalsereturn后面跟的是你的条件

最近做后台管理系统遇到一个需求:弹出一个Dialog,只要这个Dialog里面的input有一个有值,就可以;否则提示至少要有一个值。

JS数组方法some、every和find的使用详情

数据结构如下,使用some

let arr = [
    { value: "apple" },
    { value: "" },
    { value: "banana" },
    { value: "orange" },
    { value: "" },
]
let res = arr.some(item=>{
    return item.value !== ""
})
console.log(res);

在这里,只要有值,res就为true,所以我们可以在restrue时进行下一步操作。

if (res) {
    console.log("数组有值");
} else {
    console.log("至少输入一个值");
}

2、every

every的使用方法和some一样。 在MDN中:every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。

简而言之就是:它对数组中的每一项进行校验,只要有一项不通过它就是false
注意事项与some一样。 如果要求每一个输入框中都必须有值时,

let arr2 = [
    { value: "apple" },
    { value: "" },
    { value: "banana" },
    { value: "orange" },
    { value: "er" },
]

var res2 = arr2.every(item => {
    return item.value !== ""
})
console.log(res2);

在这里,只要有一项没有值,res2就为false

if (!res2) {
    //res2为真,则走else;为假,则走if
    console.log("输入框有空值");
} else {
    console.log("输入框没空值");
    console.log("进行下步操作");
}

3、find

MDN中,find()方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
注意:find()和上面两个不一样,它返回的是值,而且是第一个满足条件的值

let arr3 = [
    { value: "" },
    { value: "" },
    { value: "" },
    { value: "" },
    { value: "apple" },
]
var res3 = arr3.find(item => {
    return item.value !== ""
})
console.log(res3);

可以根据find的返回值是否为undefined来判断itemvalue,

if (res3) {
    //res3有值,在这里进行下一步操作。
    console.log("数组中至少有一个值");
} else {
    //res3为undefined
    console.log("数组为空!");
}

到此这篇关于JS数组方法some、everyfind的使用详情的文章就介绍到这了,更多相关JS数组方法someeveryfind的使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js jquery数组介绍
Jul 15 Javascript
解析JavaScript中的标签语句
Jun 19 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
Sep 10 Javascript
javascript Array 数组常用方法
Apr 05 Javascript
JavaScript检测鼠标移动方向的方法
May 22 Javascript
jquery实现Ctrl+Enter提交表单的方法
Jul 21 Javascript
用move.js库实现百叶窗特效
Feb 08 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
Vue实现typeahead组件功能(非常靠谱)
Aug 26 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
8个JS的reduce使用实例和reduce操作方式
Oct 05 #Javascript
JS 4个超级实用的小技巧 提升开发效率
Oct 05 #Javascript
JavaScript实现简单拖拽效果
Sep 15 #Javascript
一小时迅速入门Mybatis之bind与多数据源支持 Java API
Sep 15 #Javascript
Javascript之datagrid查询详解
Sep 15 #Javascript
Js类的构建与继承案例详解
Sep 15 #Javascript
JavaScript 数组去重详解
Sep 15 #Javascript
You might like
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
浅谈php的优缺点
2015/07/14 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
python操作xml文件详细介绍
2014/06/09 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
django 多数据库配置教程
2018/05/30 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
工作自荐信
2013/12/11 职场文书
单位单身证明范本
2014/01/11 职场文书
领导党性分析材料
2014/02/15 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
公司庆典主持词
2015/07/04 职场文书