国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

詳解es6新增數組方法簡便了哪些操作

2024-05-06 16:50:38
字體:
來源:轉載
供稿:網友

什么是es6?

在這里不過多闡述,我也是跟著阮一峰大佬的《es6入門 》來學習的,es6新增了很多的方法、屬性,讓我們在編碼中得到了很高的提升,在這里只對array這塊進行闡述,其他的就過不多介紹了。

言歸正傳,在項目中,經常會遇到處理數據,篩選數據的要求,我們更多的會借助于for循環來完成,比如:數組去重,傳統方法如下(以下所有實例只列舉一種)

let a = [1,2,2,3,3,4,5];let b = [a[0]];for(let i = 0; i < a.length; i++){  let flag = false;  for(let j = 0; j < b.length; j++){    if( a[i] === b[j] ){      flag = true;      break;    }  }  if( !flag ){    b.push(a[i])  }}console.log(b) // [1,2,3,4,5]

上面的是es6之前的處理方法,可以解決問題,但代碼量可著實不少啊!在es6中,只需要一行代碼就可以搞定!

Array.from &&  newSet()

let a = [1,2,2,3,3,4,5];let b = Array.from(new Set(a))console.log(b) // [1,2,3,4,5]

是不是及其簡單!其中 new Set()會把重復的數據過濾到,得到一個類數組的對象,Array.from()可以把類數組的對象轉換為真正的數組對象,有興趣的同學可以對這兩個屬性進行更加深入的了解。

數組過濾

在我們拿到后端數據的時候,可能會對數據進行一些篩選、過濾,傳統的做法如下

// 取出數組中name為kele的數組集合let a = [  {    name: 'kele',    title: '可口可樂'  },  {    name: 'kele',    title: '芬達'  },  {    name: 'wlg',    title: '王老吉'  }]let b = [];for(let i = 0; i < a.length; i++){  if( a[i].name === 'kele' ){    b.push(a[i])  }}console.log(b) //[{name: 'kele', title: '可口可樂'},{name: 'kele', title: '芬達'}]

es6中的處理方法如下

Array.filter(callback)

let a = [  {    name: 'kele',    title: '可口可樂'  },  {    name: 'kele',    title: '芬達'  },  {    name: 'wlg',    title: '王老吉'  }]let b = a.filter(item => item.name === 'kele');console.log(b) //[{name: 'kele', title: '可口可樂'},{name: 'kele', title: '芬達'}]

同樣的,Array.filter()讓我們擺脫了for循環,代碼看起來更加的清爽!

Array.every(callback)

這個方法主要是判斷數組中所有的元素都符合條件時,返回true

let a = [1,2,3,4,5];let b = a.every(item => item > 2);console.log(b) // false

Array.some(callback)

這個方法和上一個略有區別,這個方法主要判斷數組中有一個元素符合條件,就返回true

let a = [1,2,3,4,5];let b = a.some(item => item > 2);console.log(b) // true

Array.find(callback)

這個方法是返回數組中符合條件的第一個元素,否則就返回undefined

let a = [1,2,3,4,5];let b = a.find(item => item > 2);console.log(b) // 3

Array.findIndex(callback)

這個方法是返回數組中符合條件的第一個元素的索引值,否則就返回-1

let a = [1,2,3,4,5];let b = a.findIndex(item => item > 2);console.log(b) // 2 符合條件的為元素3 它的索引為2

Array.includes(item, finIndex)

這個方法是判斷數組中是否包含有指定的值,包含就返回true,否則就是false,它接受兩個參數,第一個為搜索的值(必填),第二個為搜索開始的位置(選填,默認從0開始)

let a = [1,2,3,4,5];let b = a.includes(2);console.log(b) // true

Array.map(callback)

這個方法是返回一個根據你callback函數中的條件,返回一個全新的數組

let a = [1,2,3,4,5];let b = a.map(item => item * 2);console.log(b) // [2,4,6,8,10]

Array.reduce(callback)

這個方法是根據callback中的條件對數組中的每個元素都進行類加的操作,返回一個全新的值,下面做兩個不同的例子,便于理解

/** 第一種 **/let a = [1,2,3];let b = a.reduce((i, j) => { return i + j;}, 0);console.log(b) // b/** 第二種 **/let a = [1,2,3];let b = a.reduce((i,j) => { i.push(j) return i},[0])console.log(b) // [0,1,2,3]

...擴展運算符

這個可以很方便的幫我們實現合并兩個數組

let a = [1,2,3];let b = [4,5,6];let c = [...a,...b];console.log(c) // [1,2,3,4,5,6];

小結:基本上新增的一些方法用到的就是這些,一些老的方法例如push、shift、sort等等就不一一列舉了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 如东县| 临泉县| 侯马市| 石屏县| 山阴县| 平塘县| 民勤县| 琼中| 株洲市| 永城市| 竹山县| 汶川县| 连州市| 胶州市| 木兰县| 阿合奇县| 大兴区| 德保县| 两当县| 长泰县| 韩城市| 长春市| 海宁市| 大冶市| 张掖市| 宁蒗| 黄龙县| 宣汉县| 宁远县| 金寨县| 齐齐哈尔市| 特克斯县| 万山特区| 双鸭山市| 怀仁县| 瑞昌市| 固镇县| 兰溪市| 瑞昌市| 牙克石市| 保康县|