亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

ES6 新增的創建數組的方法(小結)

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

在ES6之前,創建數組的方式有2種:

一: 通過數組字面量

let array = [1,2,3];console.log(array);//[1,2,3]

二: 通過new Array()創建數組

let array = new Array(1, 2, 3);console.log(array); //[1,2,3]

在大多數情況下new Array()運行良好:

let array = new Array(1, 2);console.log(array.length); //2console.log(array[0]); //1console.log(array[1]); //2array = new Array('a');console.log(array.length); //1console.log(array[0]);//'a'array = new Array(1, 'a');console.log(array.length); // 2console.log(array[0]);//1console.log(array[1]);//'a'

但是new Array()有一種詭異的情況:

let array = new Array(2);console.log(array[0]); // undefinedconsole.log(array[1]);// undefinedconsole.log(array.length); // 2 

當我們給new Array()傳遞單個數字參數時,這個數字不是作為數組元素,而是該數組的length屬性而存在,而數組本身則是一個空數組。

為了解決上面這個令人類沒有安全感的特性,ES6引入了Array.of()來解決這個問題:

三:Array.of()

顧名思義,of()方法就是以它接受到的參數作為元素來創造數組,上面我們說的單個數字參數的情況也同樣適用:

let array = Array.of(3);console.log(array.length); // 1console.log(array[0]); // 3array = Array.of(1, 2);console.log(array.length);// 2console.log(array[0]); // 1console.log(array[1]);// 2array = Array.of('a');console.log(array.length);// 1console.log(array[0]);// 'a'array = Array.of(1, 'a');console.log(array.length); // 2console.log(array[0]);// 1console.log(array[1]);// 'a'

四:Array.from() 

ES6還增加了一個Array.from(),也是用了創建一個數組。它主要用在以類數組對象和可迭代對象為藍本,創建對應的數組。

1: Array.from(類數組對象)

我們最熟悉的類數組對象,應該就是function的arguments對象了。接下來,我們看一個用Array.from()創建包含arguments元素的數組:

function createArrayFrom() {  console.log(arguments instanceof Array); // false  return Array.from(arguments);}let array = createArrayFrom(1, 2, 3);console.log(array instanceof Array); // trueconsole.log(array.length); //3console.log(array[0]);//1console.log(array[1]);//2console.log(array[2]);//3console.log(array.indexOf(2)); //1

2: Array.from(可迭代對象)

Array.from()也可以把一個可迭代對象轉換為數組:

let iteratorObject = {  *[Symbol.iterator](){    yield 1;    yield 2;    yield 3;  }};let array = Array.from(iteratorObject);console.log(array instanceof Array); // trueconsole.log(array.length); // 3console.log(array[0]); // 1

五:Array.from()的第二個參數 

前面的例子,我們看到了一個類數組對象和可迭代對象作為Array.from()的第一個參數,從而創建出包含它們元素的數組。Array.from()的第二個參數是一個函數,這個函數用來將類數組對象和可迭代對象的元素進行某種變換后,再作為生出數組的元素,例如:

let iteratorObject = {  *[Symbol.iterator](){    yield 1;    yield 2;    yield 3;  }};let array = Array.from(iteratorObject, (item)=>{return item + 1});console.log(array[0]); //2console.log(array[1]); //3console.log(array[2]); //4

這個例子里,我們提供了把每個元素值加一的變換,所以原本的1,2,3,置換到新的數組之后,元素是2,3,4。

六: Array.from()的第三個參數

Array.from()還提供第三個參數可用,第三個參數用來指定this的值,如果在整個方法的調用中有用到this 的話,看一個例子:

let firstHelper = {  diff: 1,  add(value){    return value + this.diff;  }};let secondHelper = {  diff: 2};function createArrayFrom() {  return Array.from(arguments, firstHelper.add, secondHelper);}let array = createArrayFrom(1, 2, 3);console.log(array); //[3, 4, 5]

上面的例子里面,我們的在add()方法里面使用了this(這行代碼:value + this.diff),并且add()定義在firstHelper對象,且firstHelper對象也有diff屬性,但是我們的第三個參數傳入的是secondHelper,所以在firstHelper.add()方法里的this值是secondHelper。

以上就是ES6新增的Array.of()和Array.from()方法,可以使得開發者用更少的代碼應對更多變的創建數組的場景。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最新69国产成人精品视频免费| 欧美日韩免费区域视频在线观看| 久久精品久久久久久| 国产成人精品综合久久久| 国产亚洲欧美视频| 国产日韩精品电影| 91chinesevideo永久地址| 欧美激情a∨在线视频播放| 伊人一区二区三区久久精品| 91久久精品日日躁夜夜躁国产| 欧美激情精品久久久久久变态| 中文字幕av一区二区三区谷原希美| 欧美肥臀大乳一区二区免费视频| 影音先锋欧美精品| 精品视频久久久| 91精品免费久久久久久久久| 久久精品电影网| 91久久中文字幕| 96pao国产成视频永久免费| 亚洲新声在线观看| 国产+成+人+亚洲欧洲| 亚洲成年人在线播放| 欧美精品在线观看91| 亚洲欧美一区二区三区久久| 欧美刺激性大交免费视频| 久久精品福利视频| 亚洲免费成人av电影| 久久免费观看视频| 久久久久久国产精品美女| 亚洲欧美中文字幕| 亚洲欧美成人在线| 欧美精品久久久久久久免费观看| 最近2019中文字幕在线高清| 欧美做受高潮1| 亚洲一区久久久| 亚洲精品国精品久久99热| 国产一区二区香蕉| 91精品国产高清自在线看超| 国产福利精品在线| 九九热精品在线| 国内揄拍国内精品少妇国语| 亚洲高清不卡av| 国产精品狼人色视频一区| 亚洲影院色在线观看免费| 精品久久久999| 91国内揄拍国内精品对白| 久久噜噜噜精品国产亚洲综合| 国产99久久精品一区二区| 久久香蕉精品香蕉| 成人免费视频网| 精品久久香蕉国产线看观看gif| 亚洲国产中文字幕久久网| 日韩经典第一页| 国产成人小视频在线观看| 久久精品91久久香蕉加勒比| 国产97在线|亚洲| 久久久久久久久亚洲| 26uuu日韩精品一区二区| 亚洲成人久久一区| 国产精品www| 亚洲欧美另类人妖| 亚洲第一视频在线观看| 日韩中文字幕在线免费观看| 国内精品一区二区三区| 欧美日韩在线视频观看| 亚洲开心激情网| 欧美日韩国产中文精品字幕自在自线| 日韩大片在线观看视频| 日韩av在线资源| 国内偷自视频区视频综合| 久久99精品久久久久久噜噜| 久久精品久久久久电影| 国产精品视频网址| 久久九九精品99国产精品| www欧美xxxx| 国内免费久久久久久久久久久| 久久久久久亚洲| 欧美性xxxxxxxxx| 精品久久久久久中文字幕大豆网| 亚洲国产另类 国产精品国产免费| 色悠悠久久久久| 久久久久久网址| 国产99视频精品免视看7| 欧美又大粗又爽又黄大片视频| 亚洲第一在线视频| 欧美精品videos另类日本| 日韩男女性生活视频| 亚洲欧美国产一区二区三区| 日韩av免费看网站| 日韩高清电影好看的电视剧电影| 77777少妇光屁股久久一区| 精品久久久久久久久久久久| 亚洲毛片一区二区| 精品国产视频在线| 欧美性少妇18aaaa视频| 蜜臀久久99精品久久久久久宅男| 日韩成人小视频| 欧美在线观看日本一区| 国产精品扒开腿做爽爽爽的视频| 中文字幕免费国产精品| 亚洲精品国产精品国自产观看浪潮| 久久久久国产视频| 国内精久久久久久久久久人| 日韩中文字幕在线看| 欧美性猛交xxxx乱大交3| 亚洲国产成人久久综合| 精品视频久久久| 日韩在线中文字| 欧美一级bbbbb性bbbb喷潮片| 俺去亚洲欧洲欧美日韩| 亚洲大胆人体av| 色老头一区二区三区在线观看| 国产精品黄页免费高清在线观看| 免费av一区二区| 国语自产精品视频在线看一大j8| 欧美黑人极品猛少妇色xxxxx| 欧美巨猛xxxx猛交黑人97人| 欧美性猛交xxxxx水多| 亚洲精选一区二区| 欧美日本在线视频中文字字幕| 91中文字幕在线| 久久久国产精品亚洲一区| 国产精品看片资源| 国产视频亚洲精品| 亚洲第一精品自拍| 欧美日韩视频免费播放| 亚洲国产欧美一区| 日韩69视频在线观看| 日本国产一区二区三区| 久久影院免费观看| 91嫩草在线视频| 欧美成人精品一区二区| 亚洲国产精品久久久久秋霞蜜臀| 精品国产欧美一区二区五十路| 亚洲天堂av综合网| 欧美日韩国产影院| 久久国产天堂福利天堂| 成人免费午夜电影| 久久视频在线播放| 懂色av中文一区二区三区天美| 国产精品夫妻激情| 亚洲片国产一区一级在线观看| 在线看片第一页欧美| 欧亚精品在线观看| 国产精品一区二区三区久久久| www.久久撸.com| 欧美视频第一页| 91国内在线视频| 国产成人高清激情视频在线观看| 麻豆国产精品va在线观看不卡| 国产精品久久久久久久久久东京| 国产精品久久久久影院日本| 亚洲美女性视频| 精品国产一区二区三区久久久| 日韩精品在线免费观看| 在线视频一区二区| 亚洲丝袜一区在线| 日韩精品在线私人| 国模吧一区二区| 色偷偷av一区二区三区乱| 亚洲成成品网站| 色综久久综合桃花网| 欧美成人精品一区| 久久这里有精品视频|