詳解es6新增數(shù)組方法簡(jiǎn)便了哪些操作

什么是es6?

十年專注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站定制,個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站定制,高端網(wǎng)頁(yè)制作,對(duì)成都石牌坊等多個(gè)領(lǐng)域,擁有多年的網(wǎng)站營(yíng)銷經(jīng)驗(yàn)。

在這里不過多闡述,我也是跟著阮一峰大佬的《es6入門 》來學(xué)習(xí)的,es6新增了很多的方法、屬性,讓我們?cè)诰幋a中得到了很高的提升,在這里只對(duì)array這塊進(jìn)行闡述,其他的就過不多介紹了。

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

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之前的處理方法,可以解決問題,但代碼量可著實(shí)不少??!在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]

是不是及其簡(jiǎn)單!其中 new Set()會(huì)把重復(fù)的數(shù)據(jù)過濾到,得到一個(gè)類數(shù)組的對(duì)象,Array.from()可以把類數(shù)組的對(duì)象轉(zhuǎn)換為真正的數(shù)組對(duì)象,有興趣的同學(xué)可以對(duì)這兩個(gè)屬性進(jìn)行更加深入的了解。

數(shù)組過濾

在我們拿到后端數(shù)據(jù)的時(shí)候,可能會(huì)對(duì)數(shù)據(jù)進(jìn)行一些篩選、過濾,傳統(tǒng)的做法如下

// 取出數(shù)組中name為kele的數(shù)組集合
let a = [
  {
    name: 'kele',
    title: '可口可樂'
  },
  {
    name: 'kele',
    title: '芬達(dá)'
  },
  {
    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: '芬達(dá)'}]

es6中的處理方法如下

Array.filter(callback)

let a = [
  {
    name: 'kele',
    title: '可口可樂'
  },
  {
    name: 'kele',
    title: '芬達(dá)'
  },
  {
    name: 'wlg',
    title: '王老吉'
  }
]

let b = a.filter(item => item.name === 'kele');

console.log(b) //[{name: 'kele', title: '可口可樂'},{name: 'kele', title: '芬達(dá)'}]

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

Array.every(callback)

這個(gè)方法主要是判斷數(shù)組中所有的元素都符合條件時(shí),返回true

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

Array.some(callback)

這個(gè)方法和上一個(gè)略有區(qū)別,這個(gè)方法主要判斷數(shù)組中有一個(gè)元素符合條件,就返回true

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

Array.find(callback)

這個(gè)方法是返回?cái)?shù)組中符合條件的第一個(gè)元素,否則就返回undefined

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

Array.findIndex(callback)

這個(gè)方法是返回?cái)?shù)組中符合條件的第一個(gè)元素的索引值,否則就返回-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)

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

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

Array.map(callback)

這個(gè)方法是返回一個(gè)根據(jù)你callback函數(shù)中的條件,返回一個(gè)全新的數(shù)組

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)

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

/** 第一種 **/
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]

...擴(kuò)展運(yùn)算符

這個(gè)可以很方便的幫我們實(shí)現(xiàn)合并兩個(gè)數(shù)組

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

文章題目:詳解es6新增數(shù)組方法簡(jiǎn)便了哪些操作
分享鏈接:http://bm7419.com/article6/iidoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃品牌網(wǎng)站制作、App設(shè)計(jì)、網(wǎng)站改版、定制網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司