在 javascript 中如何快速獲取數(shù)組指定位置的元素
前言
在 JavaScript 中如果我們需要獲取一個(gè)數(shù)組指定位置的元素,通常情況下,我們一般采用以下方法:
1.通過下標(biāo)直接獲取指定元素:arr[index], index 為非負(fù)數(shù)。
let arr = [1, 4, 5, 8, 10] // 獲取數(shù)組的第一個(gè)元素 let num1 = arr[0] // 獲取數(shù)組的最后一個(gè)元素 let num2 = arr[arr.length - 1] // 獲取數(shù)組的倒數(shù)第二個(gè)元素 let num3 = arr[arr.length - 2] console.log(num1, num2, num3); // 1 10 8
根據(jù)正序位置獲取指定的元素比較方便,但是根據(jù)逆序位置(倒數(shù)第幾個(gè))獲取指定的元素稍微繁瑣(需要計(jì)算出正序位置)。
正序時(shí) index 為正整數(shù)或0,逆序時(shí) index 為負(fù)整數(shù)。
那么獲取對(duì)應(yīng)位置元素的表達(dá)式可以表示為:
index 為正數(shù)或0:arr[index]
index 為負(fù)數(shù): arr[arr.length + index]
2.通過 slice 方法獲取
let arr = [2, 4, 6, 8, 10] // 獲取數(shù)組的第一個(gè)元素 let num4 = arr.slice(0, 1) // 獲取數(shù)組的最后一個(gè)元素 let num5 = arr.slice(-1) // 獲取數(shù)組的倒數(shù)第二個(gè)元素 let num6 = arr.slice(-2, -1) console.log(num4[0], num5[0], num6[0]); // 2 10 8
其實(shí)在其他語言中比如 python 如果你想要獲取倒數(shù)第幾個(gè)元素是可以通過 arr[index] 直接獲取(如arr[-1]獲取倒數(shù)第一個(gè)元素), 但是在 JavaScript 中是不支持這樣獲取的。
為了更方便獲取數(shù)組指定位置的元素(無論時(shí)正序還是逆序位置),數(shù)組提供了一個(gè)內(nèi)置方法 at() 可以通過元素下標(biāo)直接獲取指定位置的數(shù)組元素
數(shù)組的 at() 方法
我們使用 at 方法實(shí)現(xiàn)以上案例:
let arr2 = [2, 4, 6, 8, 10] // 獲取數(shù)組的第一個(gè)元素 let num4 = arr2.at(0) // 獲取數(shù)組的最后一個(gè)元素 let num5 = arr2.at(-1) // 獲取數(shù)組的倒數(shù)第二個(gè)元素 let num6 = arr2.at(-2) console.log(num4, num5, num6); // 2 10 8
語法:at(index), index 是整數(shù),其中包括負(fù)整數(shù)表示從左往右數(shù)第幾個(gè)元素。
獲取指定位置不存在的元素返回 undefined
let arr = [2, 4, 6, 8, 10] console.log(arr[5]); // undefined
獲取類數(shù)組指定位置元素
let likeArr = {
length: 2,
0: 'vue',
1: 'react'
}
let lang = Array.prototype.at.call(likeArr, 0)
console.log(lang); // vue對(duì)比
| 方法 | 參數(shù)范圍 | 簡(jiǎn)易程度 |
|---|---|---|
| arr[index] | 非負(fù)整數(shù) | 逆序獲取元素時(shí)需要進(jìn)行計(jì)算,相對(duì)繁瑣 |
| slice(startIndex, endIndex) | 整數(shù) | 一般需要一到兩個(gè)下標(biāo),相對(duì)繁瑣 |
| at(index) | 整數(shù) | 只需一個(gè)下標(biāo) index ,相對(duì)簡(jiǎn)單 |
到此這篇關(guān)于在 javascript 中快速獲取數(shù)組指定位置的元素的文章就介紹到這了,更多相關(guān)js獲取數(shù)組指定位置的元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript運(yùn)行機(jī)制之事件循環(huán)(Event Loop)詳解
這篇文章主要介紹了JavaScript運(yùn)行機(jī)制之事件循環(huán)(Event Loop)詳解,本文從多個(gè)方面講解了Event Loop,需要的朋友可以參考下2014-10-10
基于p5.js實(shí)現(xiàn)色彩輪和餅狀圖的動(dòng)態(tài)可視化
這篇文章主要介紹了基于p5.js實(shí)現(xiàn)色彩輪和餅狀圖的動(dòng)態(tài)可視化,文中給出了詳細(xì)的代碼,它適用于需要展示顏色信息或數(shù)據(jù)分布情況的場(chǎng)景,如設(shè)計(jì)、數(shù)據(jù)分析和教育領(lǐng)域,感興趣的朋友可以參考下2024-06-06
js實(shí)現(xiàn)隨機(jī)點(diǎn)名小功能
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)隨機(jī)點(diǎn)名小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08

