JSON數(shù)組格式轉(zhuǎn)換
JSON的數(shù)組格式就是為了前端快速的把JSON轉(zhuǎn)換成數(shù)組的一種格式,我們先來看一下JSON的數(shù)組格式怎么寫
let json = {
'0': 'music',
'1': 'I love music',
'2': '我就喜歡聽音樂',
length:3
}
這就是一個標(biāo)準(zhǔn)的JSON數(shù)組格式酪穿,跟普通的JSON對比是在最后多了一個length屬性凳干。只要是這種特殊的json格式都可以輕松使用ES6的語法轉(zhuǎn)變成數(shù)組。在ES6中絕大部分的Array操作都存在于Array對象里被济。我們就用Array.from(xxx)來進(jìn)行轉(zhuǎn)換纺座。我們把上邊的JSON代碼轉(zhuǎn)換成數(shù)組,并打印在控制臺溉潭。
let json = {
'0': 'music',
'1': 'I love music',
'2': '我就喜歡聽音樂',
length:3
}
let arr=Array.from(json);
console.log(arr)
實際開發(fā)中這種方法還是比較常用的,畢竟節(jié)省了我們代碼行數(shù)少欺,也讓我們的程序更清晰喳瓣。
Array.of()方法:
它負(fù)責(zé)把一堆文本或者變量轉(zhuǎn)換成數(shù)組。在開發(fā)中我們經(jīng)常拿到了一個類似數(shù)組的字符串赞别,需要使用eval來進(jìn)行轉(zhuǎn)換畏陕,如果你一個老手程序員都知道eval的效率是很低的,它會拖慢我們的程序仿滔。這時候我們就可以使用Array.of方法惠毁。我們看下邊的代碼把一堆數(shù)字轉(zhuǎn)換成數(shù)組并打印在控制臺上:
let arr =Array.of(3,4,5,6);
console.log(arr);
當(dāng)然它不僅可以轉(zhuǎn)換數(shù)字,字符串也是可以轉(zhuǎn)換的崎页,看下邊的代碼:
let arr =Array.of('I love music','music','我就喜歡聽音樂');
console.log(arr);
find( )實例方法:
所謂的實例方法就是并不是以Array對象開始的鞠绰,而是必須有一個已經(jīng)存在的數(shù)組,然后使用的方法飒焦,這就是實例方法(不理解請看下邊的代碼蜈膨,再和上邊的代碼進(jìn)行比對屿笼,你會有所頓悟)。這里的find方法是從數(shù)組中查找翁巍。在find方法中我們需要傳入一個匿名函數(shù)驴一,函數(shù)需要傳入三個參數(shù):
- value:表示當(dāng)前查找的值。
- index:表示當(dāng)前查找的數(shù)組索引灶壶。
- arr:表示當(dāng)前數(shù)組肝断。
在函數(shù)中如果找到符合條件的數(shù)組元素就進(jìn)行return,并停止查找驰凛。你可以拷貝下邊的代碼進(jìn)行測試胸懈,就會知道find作用。
let arr=[1,2,3,4,5,6,7,8,9];
console.log(arr.find(function(value,index,arr){
return value > 5;
}))
控制臺輸出了6洒嗤,說明找到了符合條件的值箫荡,并進(jìn)行返回了,如果找不到會顯示undefined渔隶。
fill( )實例方法:
fill()也是一個實例方法羔挡,它的作用是把數(shù)組進(jìn)行填充,它接收三個參數(shù)间唉,第一個參數(shù)是填充的變量绞灼,第二個是開始填充的位置,第三個是填充到的位置呈野。
let arr=[0,1,2,3,4,5,6,7,8,9];
arr.fill('music',2,5);
console.log(arr);
上邊的代碼是把數(shù)組從第二位到第五位用jspang進(jìn)行填充低矮。
數(shù)組的遍歷
for…of循環(huán):
這種形式比ES5的for循環(huán)要簡單而且高效。先來看一個最簡單的for…of循環(huán)
let arr=['music','I love music','我就喜歡聽音樂']
for (let item of arr){
console.log(item);
}
for…of數(shù)組索引:有時候開發(fā)中是需要數(shù)組的索引的被冒,那我們可以使用下面的代碼輸出數(shù)組索引军掂。
let arr=['music','I love music','我就喜歡聽音樂']
for (let index of arr.keys()){
console.log(index);
}
可以看到這時的控制臺就輸出了0,1,2,也就是數(shù)組的索引昨悼。
同時輸出數(shù)組的內(nèi)容和索引:
我們用entries()這個實例方法蝗锥,配合我們的for…of循環(huán)就可以同時輸出內(nèi)容和索引了。
let arr=['music','I love music','我就喜歡聽音樂']
for (let [index,val] of arr.entries()){
console.log(index+':'+val);
}
entries( )實例方法:
entries()實例方式生成的是Iterator形式的數(shù)組率触,那這種形式的好處就是可以讓我們在需要時用next()手動跳轉(zhuǎn)到下一個值终议。我們來看下面的代碼:
let arr=['music','I love music','我就喜歡聽音樂']
let list=arr.entries();
console.log(list.next().value);
console.log(list.next().value);
console.log(list.next().value);