js 判斷數(shù)組中是否包含某元素的方法

簡述 js判斷數(shù)組中是否包含某元素的方法

1.array.indexOf(item,start):元素在數(shù)組中的位置,如果沒與搜索到則返回 -1

參數(shù) 描述
item 必須。查找的元素。
start 可選的整數(shù)參數(shù)。規(guī)定在數(shù)組中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。<br />如省略該參數(shù),則將從字符串的首字符開始檢索。

實際用法:if(arr.indexOf(某元素) > -1){ // 則包含該元素}

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple"); // 2
//以上輸出結(jié)果意味著 "Apple" 元素位于數(shù)組中的第 3 個位置。

var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4); //6
//以上輸出結(jié)果意味在數(shù)組的第四個位置開始檢索:

注:string.indexOf()返回某個指定的字符串值在字符串中首次出現(xiàn)的位置。

1.該方法將從頭到尾地檢索字符串 stringObject,看它是否含有子串 searchvalue。開始檢索的位置在字符串的 fromindex 處或字符串的開頭(沒有指定 fromindex 時)。如果找到一個 searchvalue,則返回 searchvalue 的第一次出現(xiàn)的位置。

  1. stringObject 中的字符位置是從 0 開始的。
  2. 查找字符串最后出現(xiàn)的位置,使用 lastIndexOf() 方法。

<a name="aoEBe"></a>

2.array.find()

數(shù)組實例的find()用于找出第一個符合條件的數(shù)組元素。它的參數(shù)是一個回調(diào)函數(shù),所有數(shù)組元素依次遍歷該回調(diào)函數(shù),直到找出第一個返回值為true的元素,然后返回該元素,否則返回undefined。

find() 方法返回通過測試(函數(shù)內(nèi)判斷)的數(shù)組的第一個元素的值。<br />find() 方法為數(shù)組中的每個元素都調(diào)用一次函數(shù)執(zhí)行:

  • 當(dāng)數(shù)組中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之后的值不會再調(diào)用執(zhí)行函數(shù)。
  • 如果沒有符合條件的元素返回 undefined

注意: find() 對于空數(shù)組,函數(shù)是不會執(zhí)行的。
注意: find() 并沒有改變數(shù)組的原始值。

[1, 5, 10, 15].find(function(value, index, arr) {
    return value > 9;
})

// 10

//實際用法:

arr.find(function(value) {
  if(value === 要查找的值) {
    //則包含該元素
  }
})

<a name="uVPwY"></a>

3.array.findIndex()

array.findIndex()array.find() 十分類似,返回第一個符合條件的數(shù)組元素的位置,如果所有元素都不符合條件,則返回-1。

findIndex() 方法為數(shù)組中的每個元素都調(diào)用一次函數(shù)執(zhí)行:當(dāng)數(shù)組中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置,之后的值不會再調(diào)用執(zhí)行函數(shù)。如果沒有符合條件的元素返回 -1

注意: findIndex() 對于空數(shù)組,函數(shù)是不會執(zhí)行的。<br />注意: findIndex() 并沒有改變數(shù)組的原始值<br />

var ages = [3, 10, 18, 20];
 
function checkAdult(age) {
    return age >= 18;
}
 
function myFunction() {
    console.log(ages.findIndex(checkAdult)) ;
}
myFunction()

//2

方法二和方法三,這兩個方法都可以發(fā)現(xiàn)NaN,彌補(bǔ)了方法一IndexOf()的不足。

<a name="7phPE"></a>

4.for()循環(huán)

遍歷數(shù)組,然后 if 判斷<br />

var arr = [1, 5, 10, 15];
//傳統(tǒng)for
for(let i=0; i<arr.length; i++) {
  if(arr[i] === 查找值) {
    //則包含該元素
  }
}
// for...of
for(v of arr) {
  if(v === 查找值) {
    //則包含該元素
  }
}
//forEach
arr.forEach(v=>{
  if(v === 查找值) {
    //則包含該元素
  }
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容