JS陣列方法some、every和find的使用詳情
阿新 • • 發佈:2021-09-30
目錄
- 1、some
- 2、every
- 3、find
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" },] let res = arr.some(item=>{ return item.value !== "" }) console.log(res);
在這裡,只要有值,res
就為true
,所以我們可以在res
為true
時進jabqSjU行下一步操作。
if (http://www.cppcns.comres) {
console.log("陣列有值");
} else {
console.log("至少輸入一個值");
}
2、every
every
的使用方法和some
一樣。 在MDN中:every()
方法測試一個數組內的所有元素是否都能通過某個指定函式的測試。它返回一個布林值。
簡而言之就是:它對陣列中的每一項進行校驗,只要有一項不通過它就是false
。
注意事項與some
一樣。 如果要求每一個輸入框中都必須有值時,
let arr2 = [ { value: "apple" },{ 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: "" },www.cppcns.com { 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 consojabqSjUle.log("陣列為空!"); }
到此這篇關於陣列方法some、every
和find
的使用詳情的文章就介紹到這了,更多相關JS陣列方法some
、every
和find
的使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!