JS 判斷陣列是否包含某個元素方法集合
阿新 • • 發佈:2019-02-01
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() 對於空陣列,函式是不會執行的。
注意
注意: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 === 查詢值) {
//則包含該元素
}
})