1、some在MDN中这样定义:some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean 类型的值。 简而言之就是:它对数组中的每一项进行校验,只要有一项通过了就是true 。 - 它只会返回
true 或false - 它会对数组中的每一项进行检测,千万不要在
some 里面进行if else 操作 - 不要在
return 后面写true 或false ,return 后面跟的是你的条件 最近做后台管理系统遇到一个需求:弹出一个Dialog ,只要这个Dialog 里面的input 有一个有值,就可以;否则提示至少要有一个值。 
数据结构如下,使用some let arr = [ { value: "apple" }, { value: "" }, { value: "banana" }, { value: "orange" }, { value: "" },]let res = arr.some(item=>{ return item.value !== ""})console.log(res); 在这里,只要有值,res 就为true ,所以我们可以在res 为true 时进行下一步操作。 if (res) { console.log("数组有值");} else { console.log("至少输入一个值");}
2、everyevery 的使用方法和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 来判断item 中valu e, if (res3) { //res3有值,在这里进行下一步操作。 console.log("数组中至少有一个值");} else { //res3为undefined console.log("数组为空!");} 到此这篇关于JS数组方法some、every 和find 的使用详情的文章就介绍到这了,更多相关JS数组方法some 、every 和find 的使用内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! 下载地址: vue实现页面打印自动分页的两种方法 vue调取电脑摄像头实现拍照功能 |