1. 程式人生 > >JS 判斷陣列是否包含某個元素方法集合

JS 判斷陣列是否包含某個元素方法集合

1、JavaScript indexOf() 方法

  • 定義和用法
    indexOf() 方法可返回某個指定的字串值在字串中首次出現的位置。
  • 語法
stringObject.indexOf(searchvalue,fromindex)
引數 描述
searchvalue 必需。規定需檢索的字串值。
fromindex 可選的整數引數。規定在字串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該引數,則將從字串的首字元開始檢索。
  • 說明
    該方法將從頭到尾地檢索字串 stringObject,看它是否含有子串 searchvalue
    。開始檢索的位置在字串的 fromindex 處或字串的開頭(沒有指定 fromindex 時)。如果找到一個 searchvalue,則返回 searchvalue 的第一次出現的位置。stringObject 中的字元位置是從 0 開始的。
  • 提示和註釋
    註釋:indexOf() 方法對大小寫敏感!
    註釋:如果要檢索的字串值沒有出現,則該方法返回 -1。

2、jQuery.inArray()方法

  • 定義和用法
    $.inArray() 函式用於在陣列中查詢指定值,並返回它的索引值(如果沒有找到,則返回-1
    提示:源陣列不會受到影響,過濾結果只反映在返回的結果陣列中。
  • 語法
$.inArray( value, array [, fromIndex ] )
引數 描述
value 任意型別 用於查詢的值。
array Array型別 指定被查詢的陣列。
fromIndex 可選。Number型別 指定從陣列的指定索引位置開始查詢,預設為 0

3、JavaScript find() 方法

  • 定義和用法
    find() 方法返回通過測試(函式內判斷)的陣列的第一個元素的值。
    find() 方法為陣列中的每個元素都呼叫一次函式執行:

    當陣列中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之後的值不會再呼叫執行函式。
    如果沒有符合條件的元素返回 undefined

    注意:find() 對於空陣列,函式是不會執行的。
    注意

    :find() 並沒有改變陣列的原始值。
    注意:JavaScript 版本為ECMAScript 6

  • 用法

 array.find(function(currentValue, index, arr),thisValue)
引數 描述
function 必需。陣列每個元素需要執行的函式。
currentValue 必需。當前元素 函式引數
index 可選。當前元素的索引值函式引數
arr 可選。當前元素所屬的陣列物件函式引數
thisValue 可選。 傳遞給函式的值一般用 “this” 值。如果這個引數為空, “undefined” 會傳遞給 “this” 值
  • 返回值
    返回符合測試條件的第一個陣列元素值,如果沒有符合條件的則返回 undefined

4、JavaScript findIndex() 方法

  • 定義和用法
    findIndex() 方法返回傳入一個測試條件(函式)符合條件的陣列第一個元素位置。
    findIndex() 方法為陣列中的每個元素都呼叫一次函式執行:

    當陣列中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置,之後的值不會再呼叫執行函式。
    如果沒有符合條件的元素返回 -1

    注意:find() 對於空陣列,函式是不會執行的。
    注意:find() 並沒有改變陣列的原始值。
    注意:JavaScript 版本為ECMAScript 6

  • 用法

array.findIndex(function(currentValue, index, arr), thisValue)
引數 描述
function 必需。陣列每個元素需要執行的函式。
currentValue 必需。當前元素 函式引數
index 可選。當前元素的索引值函式引數
arr 可選。當前元素所屬的陣列物件函式引數
thisValue 可選。 傳遞給函式的值一般用 “this” 值。如果這個引數為空, “undefined” 會傳遞給 “this” 值
  • 返回值
    返回符合測試條件的第一個陣列元素索引,如果沒有符合條件的則返回 -1

5、for 迴圈和 if 判斷

var arr = [1, 5, 10, 15];

/* 傳統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 === 查詢值) {
        //則包含該元素
    }
})