JavaScript 數(shù)組 lastIndexOf() 方法含代碼

JavaScript中經(jīng)常使用數(shù)組進(jìn)行相關(guān)的數(shù)據(jù)處理操作。愛掏網(wǎng) - it200.com其中,Array lastIndexOf()方法是比較基礎(chǔ)和常用的操作之一,用于查找給定元素在數(shù)組中最后出現(xiàn)的位置。愛掏網(wǎng) - it200.com本文將詳細(xì)介紹該方法的使用以及相關(guān)的細(xì)節(jié)問題。愛掏網(wǎng) - it200.com

lastIndexOf()方法的語法

lastIndexOf()方法具體的使用和語法如下:

array.lastIndexOf(searchElement[, fromIndex])

其中,searchElement表示要查找的元素,fromIndex則是起始查找位置。愛掏網(wǎng) - it200.com如果沒有設(shè)置fromIndex,則默認(rèn)從數(shù)組末尾開始查找。愛掏網(wǎng) - it200.com該方法返回最后一個匹配的元素的位置,若沒有找到,則返回-1。愛掏網(wǎng) - it200.com

下面我們通過一些實例來說明該函數(shù)的使用方法。愛掏網(wǎng) - it200.com

示例代碼

示例一:查找某元素在數(shù)組中最后一次出現(xiàn)的位置

let arr = ["apple", "banana", "orange", "grape", "apple", "watermelon"];

let index = arr.lastIndexOf("apple");
console.log(index);  // 輸出5

示例二:指定起始查找位置

let arr = ["apple", "banana", "orange", "grape", "apple", "watermelon"];

let index = arr.lastIndexOf("apple", 3);
console.log(index);  // 輸出0

細(xì)節(jié)問題

1. 對于不支持indexOf的瀏覽器

在IE8及以下版本的瀏覽器中,由于其不支持lastIndexOf()方法,因此需要通過以下代碼來解決問題:

if(!Array.prototype.lastIndexOf){
    Array.prototype.lastIndexOf = function(searchElement, fromIndex) {

        var len = this.length;

        // 在數(shù)組末尾開始查找,如果不存在搜索元素,返回-1
        if (!fromIndex){
            fromIndex = len - 1;
        }
        // 如果searchElement不存在數(shù)組中,處理后返回-1
        else if (fromIndex && fromIndex < 0){
            fromIndex = Math.max(0, len + fromIndex);
        }

        for (var i = fromIndex; i >= 0; i--) {
            if (this[i] === searchElement){
                return i;
            }
        }
        // 如果未找到指定元素,則返回-1
        return -1;
    };
}

2. 不支持對引用類型的操作

lastIndexOf()方法不支持對引用類型的操作,例如:

let arr = [{name: "apple"}, {name: "orange"}, {name: "banana"}];
let index = arr.lastIndexOf({name: "orange"}); 

console.log(index); // 輸出 -1

原因是lastIndexOf()方法比較的是引用地址,所以會返回未找到的結(jié)果。愛掏網(wǎng) - it200.com如果要指定查找引用類型的方式,則需要自定義方法來實現(xiàn)。愛掏網(wǎng) - it200.com

3. 注意null或undefined的使用

lastIndexOf()方法對數(shù)組元素值為null或undefined的查找進(jìn)行了特殊處理:

let arr = [1, 2, null, undefined];
console.log(arr.lastIndexOf(null)); // 輸出2
console.log(arr.lastIndexOf(undefined)); // 輸出3

在這種情況下,lastIndexOf()方法返回的是搜索元素的非嚴(yán)格相等比較結(jié)果。愛掏網(wǎng) - it200.com

結(jié)論

本文詳細(xì)介紹了JavaScript Array lastIndexOf()方法的語法和使用方法,同時還討論了關(guān)于代碼實現(xiàn)的部分細(xì)節(jié)問題,供JavaScript程序開發(fā)人員學(xué)習(xí)和使用。愛掏網(wǎng) - it200.com

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評論
更多 網(wǎng)友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 男女爽爽无遮挡午夜动态图| 国产真人无码作爱视频免费 | 久久精品韩国三级| 国产18禁黄网站免费观看| 性欧美vr高清极品| 欧美日韩在线观看免费| 91手机看片国产永久免费| 国产女人18毛片水真多| 强开小婷嫩苞又嫩又紧视频韩国| 91精品免费在线观看| 三级在线看中文字幕完整版| 亚洲精品中文字幕无码av| 国产成人无码a区在线观看视频| 成人欧美一区二区三区| 欧美高清视频www夜色资源网| 这里是九九伊人| 2020夜夜操| 东京加勒比中文字幕波多野结衣 | 亚洲图片欧美文学小说激情| 国产一级高清免费观看| 国精品无码一区二区三区在线蜜臀 | 亚洲综合无码一区二区| 国产偷自拍视频| 国产麻豆交换夫妇| 欧美成人午夜影院| 亚洲国产成人精品激情| 一区二区三区伦理高清| 九九这里只有精品视频| 他强行给我开了苞| 国产国产精品人在线视| 国产精品嫩草影院永久一| 强挺进小y头的小花苞漫画| 日本永久免费a∨在线视频| 欧美成人一区二区三区在线视频 | 精品国产乱码一区二区三区| 黄色激情视频在线观看| 3p视频在线观看| 99在线免费视频| eeuss鲁片一区二区三区| 中文丰满岳乱妇在线观看| 久久久精品国产免大香伊|