1. 程式人生 > 程式設計 >JS陣列方法some、every和find的使用詳情

JS陣列方法some、every和find的使用詳情

目錄
  • 1、some
  • 2、every
  • 3、find

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" },]
let res = arr.some(item=>{
    return item.value !== ""
})
console.log(res);

在這裡,只要有值,res就為true,所以我們可以在restrue時進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來判斷itemvalue,

if (res3) {
    //res3有值,在這裡進行下一步操作。
    console.log("陣列中至少有一個值");
} else {
    //res3為undefined
    consojabqSjUle.log("陣列為空!");
}

到此這篇關於陣列方法some、everyfind的使用詳情的文章就介紹到這了,更多相關JS陣列方法someeveryfind的使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!