成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你能想到多少種獲取數組第N個元素的方法?

開發(fā) 前端
作為一個前端工程師,數據的處理能力必然是很重要的。對于常見的數組,想要獲取其中的第N個元素,究竟有多少種方法呢?

作為一個前端工程師,數據的處理能力必然是很重要的。對于常見的數組,想要獲取其中的第N個元素,究竟有多少種方法呢?

比如,我們要獲取數組 array 的 第 3 個元素。

  1. const array = [ 
  2.   { id: 1, name: 'Mario' },  
  3.   { id: 2, name: 'Doom'},  
  4.   { id: 3, name: 'Jack'}, 
  5.   { id: 4, name: 'Yvette'} 

1. for 循環(huán)

最簡單的當然是 for / forEach 循環(huán)啦。

  1. let result; 
  2. for (let index = 0; index < array.length; index++) { 
  3.   if (index === 2) { 
  4.     result = array[index]; 
  5.   } 

2. Array.prototype.forEach

forEach 不用多介紹,相信大家都知道。這里使用 forEach,而不選中 map 的原因很簡單,因為這里不需要返回一個新的數組,甚至也不需要返回值,而且 forEach 還可以中斷。如果是一個超級大大大數組,優(yōu)勢就出來了。

  1. let result; 
  2. array.forEach((item, index) => { 
  3.   if(index === 2) { 
  4.     result = item
  5.     return; 
  6.   } 
  7. }); 

3. Array.prototype.find

find 和 forEach 應該都是大家比較常用的方法了。find 返回的是數組中第一個滿足條件的元素,用在這里也合適。

  1. const result = array.find((item,index) => index === 2); 

4. Array.prototype.slice

slice 于我而言,沒有 find 和 forEach 用得頻繁。最最最關鍵的是,每次用 slice 之前,我都會把 splice 在心里想一遍去確認,討厭這種超級相近的單詞。

slice 返回的是一個數組,slice(start, end),如果不傳 end 的話,就返回從 start一直到數組末尾。

  1. const result = array.slice(2,3)[0]; 

如果 start 是負數的話,那么就會從數組的末尾開始,比如,獲取數組的最后一個數:

  1. const lastOne = array.slice(-1)[0]; 

獲取數組的倒數第二個數:

  1. const lastSecond = array.slice(-2, -1)[0]; 

如果有人跟我一樣,對 slice 和 splice 這種超級單詞超級像的方法會有點傻傻分不清的話,我是這樣去區(qū)分的:

splice 比 slice 多個 p,而 splice 會改變原數組,一般會修改原數組的方法都不是我的首選,所以這個多出來的這個 p 真的就是個 P。

記這些東西真的好難,哈哈哈哈,尤記當年記 “上北下南,左西右東”時,前半句我一直沒有問題,后半句,我總是不分期是“左西右東”,還是“左東右西”,后來,我自己總結了下,封口的要對不封口的,不封口的要對封口的,“左”不封口,所以它要跟一個封口的“西”,“右”是封口的,所以它和“東”在一起,從此之后,我就再也沒有高混過了。

5. Array.prototype.at

數組原型新增的方法,個人認為這是最最最方便的方法了。和 slice 不同,它返回的就是第N個元素。

  1. const result = array.at(2); 

和 slice 類似,如果入參是負數的話,那么將會從數組的末尾開始。

例如,獲取最后一個元素:

  1. const lastOne = array.at(-1); 

獲取倒數第二個元素:

  1. const lastSecond = array.at(-2); 

用它用它用它。

6. lodash 的 nth

如果你項目中使用了 lodash 的話,那么 nth 當然也是一個很好的選擇。

  1. import { nth } from 'lodash'; 
  2. const result = nth(array, 2); 

 

責任編輯:趙寧寧 來源: 前端宇宙
相關推薦

2020-09-18 06:42:21

JavaScript交換值交換變量

2020-09-19 17:31:25

JavaScript

2023-01-13 14:29:00

ESMySQL數據

2010-11-15 10:49:23

求職

2022-08-11 08:46:23

索引數據結構

2018-12-14 12:07:53

Nginxweb服務器

2011-05-10 10:56:29

DBA面試

2021-12-31 16:16:04

JavaScript數組代碼

2021-07-26 08:31:17

算法

2019-05-24 08:36:33

MySQL查詢SQL

2022-11-21 18:37:40

漏測BugSOP

2022-08-10 12:02:52

面試JavaScript

2022-04-28 08:41:53

JavaScript數組

2023-03-08 16:54:28

MySQL數據庫

2020-06-29 07:23:54

for循環(huán)數組JavaScrip

2019-02-12 05:03:18

2024-03-20 00:04:46

TypeScriptas const類型斷言

2020-07-27 17:16:32

U盤裝機Windows 10

2021-04-23 09:41:50

元素邊框CSS

2019-08-23 08:54:32

LinuxMySQLBSD
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级片aaa | 久久精品国产一区二区三区不卡 | 日韩欧美一区二区三区四区 | m豆传媒在线链接观看 | 亚洲欧美国产精品一区二区 | 一级黄a视频 | 三级视频国产 | 免费在线一区二区 | 日韩一区二区三区在线视频 | 一级a毛片| 日韩精品在线一区 | 日韩一区中文字幕 | h免费观看 | 亚洲一区二区三区在线免费 | 天天干狠狠操 | 一二三四在线视频观看社区 | 欧美成人一区二区 | 国产一区二区在线免费播放 | 日日夜夜精品视频 | 中文字幕99 | 一级大黄色片 | 伊人久久综合 | 麻豆精品国产91久久久久久 | 亚洲精品国产区 | 国产精品美女久久久久aⅴ国产馆 | 欧美日韩高清一区二区三区 | 夏同学福利网 | av一区二区三区四区 | 91社影院在线观看 | 亚洲综合无码一区二区 | 久久精品一级 | 在线成人免费av | 久久免费观看视频 | 国产精品久久 | 天堂色综合 | 亚洲精品乱码久久久久久蜜桃 | 精品91 | 精品伊人久久 | 国产在线视频一区二区 | 欧美一区二区在线观看 | 亚洲中字在线 |