es6、es5的一些判斷數組當前元素的一些方法的分析心得(數組學習篇:一)

版權歸本人所有,未經允許嚴禁轉載

多說無益,再bb就是我的鍋了,直接進入正題

爲了更方便的做一些演示,所以在工作臺添加一個名爲arr的數組類型變量:

const arr = ['Jimmy', 'Tom', 'Lily', 'Lucy'];

 1. arr.indexOf(item[, fromIndex])方法:item參數代表的是某個元素,如果元素存在就返回該元素的index值,而如果不存在則返回-1,fromIndex參數代表數組開始尋找的index,默認爲0,複數則從莫爲開始計算;特點是找到第一個元素的索引之後馬上返回值並且停止執行

console.log('indexOf方法參數爲Tom的返回值', arr.indexOf('Tom'));  // 輸出1
console.log('indexOf方法參數爲Lilei返回的值', arr.indexOf('Lilei')); // 輸出-1
console.log('indexOf方法參數爲Tom,2返回的值', arr.indexOf('Tom', 2)); // 輸出-1

2. arr.includes(item[, fromIndex])方法:item參數如果爲該數組的某個元素就返回true,反之返回false;fromIndex參數代表數組開始尋找的index,用法同上(indexOf)

console.log('includes方法參數爲Tom返回值', arr.includes('Tom')); // 輸出true
console.log('includes方法參數爲Likei返回的值', arr.includes('Lilei')); // 輸出false
console.log('includes方法參數爲Tom,2返回值', arr.includes('Tom', 2)); // 輸出false

3. arr.find(callback[, thisArg])方法,尋找出數組中第一個匹配的元素,並結束查找,callback爲函數類型(參數有:element--當前元素,index當前的索引值,array當前元素),thisArg參數爲this的控制權,特點:傳入特定的值如果數組中存在則返回這個值;傳入索引值,則會返回索引值對應的值

console.log('arr.find(arrFind(item, index, arr))的值', arr.find(arrFind)); // 輸出1
function arrFind(item, index, arr) {
    return item === 'Tom';
    // return index === 0
}

4. arr.findIndex(callback[, thisArg])方法,尋找出數組中第一個匹配元素的索引值,用法類似於find,如果存在則返回index值,不存在則返回-1,跟find方法一樣,雖然作用比較單一,但是擴展性比較好

console.log('arr.find(arrFind(item, index, arr))的值', arr.findIndex(arrFind)); // 輸出Tom
function arrFind(item, index, arr) {
    // return item === 'Tom';
    return index === 1
}

5. in操作符,尋找某屬性是否存在於該對象,在數組中使用時必須傳入index(索引值),因爲索引值是數組的鍵值,換個詞說,就是屬性名的意思;跟includes到的區別是,includes傳入的是具體值,而in傳入的是index值

console.log('in操作符', 1 in arr); // 輸出true

6. arr.lastIndexOf(item[, fromIndex]),表示數組中某元素最後出現的位置,可參照字符串的lastIndexOf()方法,參數和參數的用法跟indexOf是完全一樣的

console.log('indexOf方法參數爲Tom的返回值', arr.lastIndexOf('Tom'));  // 輸出1
console.log('indexOf方法參數爲Lilei返回的值', arr.lastIndexOf('Lilei')); // 輸出-1
console.log('indexOf方法參數爲Tom,2返回的值', arr.lastIndexOf('Tom', 2)); // 輸出-1

7. arr.some(callback[, thisArg]),表示該數組中是否有匹配的元素,如果有則返回true,如果沒有則返回false,參數跟find方法的參數完全一樣

console.log('arr.find(arrFind(item, index, arr))的值', arr.some(arrFind)); // 輸出true
function arrFind(item, index, arr) {
    return item === 'Tom';
    // return index === 0
}

以上爲個人總結出來的一些數組對當前元素匹配與判斷,如果有遺漏和錯誤請指正!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章