JS數(shù)組方法some、every和find的使用詳情
1、some
在MDN中這樣定義:some()
方法測試數(shù)組中是不是至少有1個元素通過了被提供的函數(shù)測試。它返回的是一個Boolean
類型的值。
簡而言之就是:它對數(shù)組中的每一項進行校驗,只要有一項通過了就是true
。
- 它只會返回
true
或false
- 它會對數(shù)組中的每一項進行檢測,千萬不要在
some
里面進行if else
操作 - 不要在
return
后面寫true
或false
,return
后面跟的是你的條件
最近做后臺管理系統(tǒng)遇到一個需求:彈出一個Dialog
,只要這個Dialog
里面的input
有一個有值,就可以;否則提示至少要有一個值。
數(shù)據(jù)結(jié)構(gòu)如下,使用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("數(shù)組有值"); } else { console.log("至少輸入一個值"); }
2、every
every
的使用方法和some
一樣。 在MDN中:every()
方法測試一個數(shù)組內(nèi)的所有元素是否都能通過某個指定函數(shù)的測試。它返回一個布爾值。
簡而言之就是:它對數(shù)組中的每一項進行校驗,只要有一項不通過它就是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()
方法返回數(shù)組中滿足提供的測試函數(shù)的第一個元素的值。否則返回 undefined
注意:find()和上面兩個不一樣,它返回的是值,而且是第一個滿足條件的值
let arr3 = [ { value: "" }, { value: "" }, { value: "" }, { value: "" }, { value: "apple" }, ] var res3 = arr3.find(item => { return item.value !== "" }) console.log(res3);
可以根據(jù)find
的返回值是否為undefined
來判斷item
中valu
e,
if (res3) { //res3有值,在這里進行下一步操作。 console.log("數(shù)組中至少有一個值"); } else { //res3為undefined console.log("數(shù)組為空!"); }
到此這篇關(guān)于JS數(shù)組方法some、every
和find
的使用詳情的文章就介紹到這了,更多相關(guān)JS數(shù)組方法some
、every
和find
的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mitt tiny-emitter發(fā)布訂閱應用場景源碼解析
這篇文章主要為大家介紹了mitt tiny-emitter發(fā)布訂閱應用場景源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12微信小程序 循環(huán)及嵌套循環(huán)的使用總結(jié)
這篇文章主要介紹了微信小程序 循環(huán)及嵌套循環(huán)的使用總結(jié)的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09