1. indexof
arr.indexof(searchelement[, fromindex])
searchelement
要查詢的元素
fromindex
可選
開始查詢的位置。如果該索引值大於或等於陣列長度,意味著不會在陣列裡查詢,返回-1。如果引數中提供的索引值是乙個負值,則將其作為陣列末尾的乙個抵消,即-1表示從最後乙個元素開始查詢,-2表示從倒數第二個元素開始查詢 ,以此類推。 注意:如果引數中提供的索引值是乙個負值,並不改變其查詢順序,查詢順序仍然是從前向後查詢陣列。如果抵消後的索引值仍小於0,則整個陣列都將會被查詢。其預設值為0.
2. findindex
arr.findindex(callback[, thisarg])
callback
針對陣列中的每個元素, 都會執行該**函式, 執行時會自動傳入下面三個引數:element
當前元素。
index
當前元素的索引。
array
呼叫findindex
的陣列。
3. 兩者之間的區別
(1) 使用方式
indexof傳入引數為待查詢元素,findindex傳入引數為自定義函式
(2)適用範圍
雖然indexof與findindex都可用以查詢元素,但findindex比indexof使用更靈活,適用範圍更廣
例如,我們可以自定義findindex的查詢函式,使其查詢值時忽略大小寫、強轉型別比較,甚至可以查詢值相同的引用型別,以下舉例詳細說明
a. 忽略大小寫
const arr = [1, '2', 'test', ]
const findval = 'test'
console.log(arr.indexof(findval)) // -1
console.log(arr.findindex(val => )) // 2
b. 型別強轉
const arr = [1, '2', 'test', ]
const findval = 2
console.log(arr.indexof(findval)) // -1
console.log(arr.findindex(val => val == findval)) // 1
c. 查詢值相同的引用型別
const arr = [1, '2', 'test', ]
const findval =
console.log(arr.indexof(findval)) // -1
console.log(arr.findindex(val => compare(val, findval))) // 3
/*** @name 兩值比較
* @param obj1 值1
* @param obj2 值2
* @returns true 相等 false 不等
*/export function compare (obj1, obj2)
const obj1_keys = object.keys(obj1)
const obj2_keys = object.keys(obj2)
if (obj1_keys.length !== obj2_keys.length) return false
return obj1_keys.every(k => compare(obj1[k], obj2[k]))
}/**
* @name 獲取資料型別
* @param val 資料
* @returns 資料型別
* boolean 布林值, number 數, string 字串,
* undefined, null, array 陣列, object 物件,
* function 函式, symbol, set set型別, map map型別
*/export function getdatatype (val)
return rules[object.prototype.tostring.call(val)]
}
js陣列中的indexof()方法
indexof 語法 arrayobject.indexof searchvalue,startindex 功能 從陣列的開頭 位置0 開始向後查詢。引數 searchvalue 必需,要查詢的項 startindex 可選,起點位置的索引。返回值 number,查詢的項在陣列中的位置,沒有找到的情...
JS中的indexOf方法
indexof 是js中內建的方法之一,它的功能大家都很熟悉 簡單來說就是得到資料的索引,對於正則不熟練的人,是個很不錯的方法。如果查詢到返回索引,反之返回 1 固定用法 因為indexof 在不同型別使用的時候可能有細節性的注意點 這裡我們對不同資料型別使用indexof的場景進行討論 其實就是s...
JS中的indexof 解釋
indexof 方法可返回某個指定的字串值在字串中首次出現的位置。stringobject.indexof searchvalue,fromindex 該方法將從頭到尾地檢索字串 stringobject,看它是否含有子串 searchvalue。開始檢索的位置在字串的 fromindex 處或字串...