es6學(xué)習(xí)(二)---數(shù)組操作

ES6中新增的數(shù)組知識(shí)

  • JSON數(shù)組格式轉(zhuǎn)換
    JSON的數(shù)組格式就是為了前端快速的把JSON轉(zhuǎn)換成數(shù)組的一種格式
    Array.from()
let  json = {
    '0': 'hello',
    '1': 'world',
    '2': '????',
    length:3
}

這就是一個(gè)標(biāo)準(zhǔn)的JSON數(shù)組格式,跟普通的JSON對(duì)比是在最后多了一個(gè)length屬性。只要是這種特殊的json格式都可以輕松使用ES6的語(yǔ)法轉(zhuǎn)變成數(shù)組。在ES6中絕大部分的Array操作都存在于Array對(duì)象里。我們就用Array.from(xxx)來(lái)進(jìn)行轉(zhuǎn)換。

let  json = {
    '0': 'hello',
    '1': 'world',
    '2': '????',
    length:3
}
let arr=Array.from(json);
console.log(arr)
//["hello", "world", "????"]

實(shí)際開(kāi)發(fā)中這種方法還是比較常用的,畢竟節(jié)省了我們代碼行數(shù),也讓我們的程序更清晰。

  • Array.of()方法

它負(fù)責(zé)把一堆文本或者變量轉(zhuǎn)換成數(shù)組。在開(kāi)發(fā)中我們經(jīng)常拿到了一個(gè)類(lèi)似數(shù)組的字符串,需要使用eval來(lái)進(jìn)行轉(zhuǎn)換,如果你一個(gè)老手程序員都知道eval的效率是很低的,它會(huì)拖慢我們的程序。這時(shí)候我們就可以使用Array.of方法。我們看下邊的代碼把一堆數(shù)字轉(zhuǎn)換成數(shù)組并打印在控制臺(tái)上:

let arr =Array.of(3,4,5,6);
console.log(arr);
//[3, 4, 5, 6]
let arr =Array.of('hello','world');
console.log(arr);
//["hello", "world"]
  • find( )實(shí)例方法
    所謂的實(shí)例方法就是并不是以Array對(duì)象開(kāi)始的,而是必須有一個(gè)已經(jīng)存在的數(shù)組,然后使用的方法,這就是實(shí)例方法(不理解請(qǐng)看下邊的代碼,再和上邊的代碼進(jìn)行比對(duì),你會(huì)有所頓悟)。這里的find方法是從數(shù)組中查找。在find方法中我們需要傳入一個(gè)匿名函數(shù),函數(shù)需要傳入三個(gè)參數(shù):
    1.value:表示當(dāng)前查找的值。
    2.index:表示當(dāng)前查找的數(shù)組索引。
    3.arr:表示當(dāng)前數(shù)組。

在函數(shù)中如果找到符合條件的數(shù)組元素就進(jìn)行return,并停止查找。

let arr=[1,2,3,4,5,6,7,8,9];
console.log(arr.find(function(value,index,arr){
    return value > 5;
}))
//6
  • 數(shù)組的遍歷
  1. for…of循環(huán):
    這種形式比ES5的for循環(huán)要簡(jiǎn)單而且高效。
let arr=['hello','world']
 
for (let item of arr){
    console.log(item);
}
//hello
//world

for…of數(shù)組索引:有時(shí)候開(kāi)發(fā)中是需要數(shù)組的索引的,那我們可以使用下面的代碼輸出數(shù)組索引。

let arr=['hello','world']
for (let index of arr.keys()){
    console.log(index);
}
//0
//1

同時(shí)輸出數(shù)組的內(nèi)容和索引:我們用entries()這個(gè)實(shí)例方法,配合我們的for…of循環(huán)就可以同時(shí)輸出內(nèi)容和索引了。

let arr=['hello','world']
for (let [index,val] of arr.entries()){
    console.log(index+':'+val);
}
//0:hello
//1:world

2.entries( )實(shí)例方法:
entries()實(shí)例方式生成的是Iterator形式的數(shù)組,那這種形式的好處就是可以讓我們?cè)谛枰獣r(shí)用next()手動(dòng)跳轉(zhuǎn)到下一個(gè)值??梢钥刂戚敵?輸出key和value組成的數(shù)組

let arr=['hello','world']
let list=arr.entries();
console.log(list.next().value);
console.log(list.next().value);
//[0, "hello"] 
//[1, "world"]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Ruby 數(shù)組(Array) Ruby 數(shù)組是任何對(duì)象的有序整數(shù)索引集合。數(shù)組中的每個(gè)元素都與一個(gè)索引相關(guān),并可通...
    黑夜的眸閱讀 1,180評(píng)論 0 0
  • 三,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進(jìn),只要將碼點(diǎn)放入大括號(hào),就能正確解讀該字符。有了這...
    eastbaby閱讀 1,667評(píng)論 0 8
  • 近來(lái)心情總是不好,起伏不定,沒(méi)工作天天窩在家里,感覺(jué)自己都要生銹了,與外面的世界脫軌,以前不開(kāi)心的時(shí)候吃點(diǎn)好吃的,...
    鶴宇晨閱讀 173評(píng)論 0 1
  • 我們都知道攝影不是一天就能學(xué)會(huì)的,需要多看書(shū)、攝影網(wǎng)站以及大量的實(shí)踐積累。很多攝影愛(ài)好者接觸攝影一段時(shí)間后,就會(huì)發(fā)...
    我們愛(ài)拍照閱讀 726評(píng)論 0 6

友情鏈接更多精彩內(nèi)容