国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

ECMAScript6 新特性——“數(shù)組的擴(kuò)展”

Eminjannn / 2780人閱讀

摘要:原來(lái)的也被修改了數(shù)組實(shí)例的喝方法,用于找出第一個(gè)符合條件的數(shù)組成員。它的參數(shù)是一個(gè)回調(diào)函數(shù),所有數(shù)組成員依次執(zhí)行該回調(diào)函數(shù),直到找出第一個(gè)返回值為的成員,然后返回該成員。數(shù)組實(shí)例的方法使用給定值,填充一個(gè)數(shù)組。

1 Array.from()

Array.from方法用于將兩類(lèi)對(duì)象轉(zhuǎn)為真正的數(shù)組:類(lèi)似數(shù)組的對(duì)象(array-like object)和可遍歷(iterable)的對(duì)象(包括ES6新增的數(shù)據(jù)結(jié)構(gòu)Set和Map)。

語(yǔ)法如下:

ES5:

var arr = [].slice.call(arrayLike);

ES6:

var arr = Array.from(arrayLike);

var o = {length: 3};
var a = Array.from(o);
console.log(Object.prototype.toString.call(a)); //[object Array]
console.log(a.toString()); //,,
console.log(0 in a); //true
console.log(a[0]); //undefined
a.forEach(function(item, index, array) {
    console.log(item); //undefined x 3
});

又如:

var o = {0: "Oliver", 1: 18, length: 2};
var a = Array.from(o);
console.log(Object.prototype.toString.call(a)); //[object Array]
console.log(a.toString()); //Oliver,18
console.log(0 in a); //true
console.log(a[0]); //Oliver
a.forEach(function(item, index, array) {
    console.log(item);
    //Oliver
    //18
});

如果參數(shù)是數(shù)組,Array.from會(huì)返回一個(gè)一模一樣的數(shù)組

var a = Array.from([1,2,3]);
console.log(a.join("")); //123

var arr = [].concat([1,2,3]);
console.log(arr.join("")); //123

任何有l(wèi)ength屬性的對(duì)象,都可以通過(guò)Array.from方法轉(zhuǎn)為數(shù)組

Array.from還可以接受第二個(gè)參數(shù),作用類(lèi)似于數(shù)組的map方法,用來(lái)對(duì)每個(gè)元素進(jìn)行處理,將處理后的值放入返回的數(shù)組。

var a = Array.from([1,2,3], x => x + 1);
console.log(a.join("")); //2,3,4

var a = Array.from([1,2,3]).map(function(x) {return x + 1;});
console.log(a.join("")); //2,3,4

如果map函數(shù)里面用到了this關(guān)鍵字,還可以傳入該方法第三個(gè)參數(shù),用來(lái)綁定this

2 Array.of()

Array.of方法用于將一組值,轉(zhuǎn)換為數(shù)組。

var a0 = Array(3);
var a1 = Array.of(3);
var a2 = Array.of(undefined);
console.log(a0, a1, a2); //[] [3] [undefined]

該方法只是用于彌補(bǔ)Array()的不足

3 數(shù)組實(shí)例的copyWithin()

在當(dāng)前數(shù)組內(nèi)部,將指定位置的成員復(fù)制到其他位置(會(huì)覆蓋原有成員),然后返回當(dāng)前數(shù)組。

var a = [1,2,3,4,5];
var newArr = a.copyWithin(0, 2, 3);
console.log(newArr); //[3, 2, 3, 4, 5]
console.log(a); //原來(lái)的a也被修改了

var newArr = Array.prototype.copyWithin.call(a, 0, 2);
console.log(newArr); //[3, 4, 5, 4, 5]
4 數(shù)組實(shí)例的find()喝f(wàn)indIndex()

find方法,用于找出第一個(gè)符合條件的數(shù)組成員。

它的參數(shù)是一個(gè)回調(diào)函數(shù),所有數(shù)組成員依次執(zhí)行該回調(diào)函數(shù),直到找出第一個(gè)返回值為true的成員,然后返回該成員。如果沒(méi)有符合條件的成員,則返回undefined。

var a = [13,2,0,14,-5];
var result = a.find(function(x, i, a) {
    return x > 0;
});
console.log(result); //13

var result = a.find(x => x > 0);
console.log(result); //13

findIndex方法,返回第一個(gè)符合條件的數(shù)組成員的位置,如果所有成員都不符合條件,則返回-1。

var a = [13,2,0,14,-5];
var result = a.findIndex(function(x, i, a) {
    return x < 0;
});
console.log(result); //4

var result = a.findIndex(x => x < 0);
console.log(a[result]); //-5
5 數(shù)組實(shí)例的fill()

fill方法使用給定值,填充一個(gè)數(shù)組。

方法還可以接受第二個(gè)和第三個(gè)參數(shù),用于指定填充的起始位置和結(jié)束位置。

var a = [,,,];
console.log(a); //[]
a.fill();
console.log(a); //[undefined, undefined, undefined]

var a = [1,2,3];
a.fill(0);
console.log(a); //[0,0,0]

a.fill(1, 1, 2);
console.log(a); //[0,1,0]
6 數(shù)組實(shí)例的entries(),keys(),values()

可以用for...of循環(huán)進(jìn)行遍歷

keys()是對(duì)鍵名的遍歷

values()是對(duì)鍵值的遍歷

entries()是對(duì)鍵值對(duì)的遍歷

var a = [1, 2, 3, 4, 5];
console.log(a.keys()); //ArrayIterator{}
for(let index of a.keys()){
    console.log(index);
};
for(let [index, elem] of a.entries()){
    console.log(index, elem);
};
//ArrayIterator {}
//0
//1
//2
//3
//4
//0 1
//1 2
//2 3
//3 4
//4 5
7 ES7:數(shù)組實(shí)例的includes()

方法返回一個(gè)布爾值,表示某個(gè)數(shù)組是否包含給定的值,該方法屬于ES7

var a = [1,2,3,4,5,NaN];
console.log(a.includes(2), a.includes(NaN)); //ture true
//.includes方法支持比較NaN
console.log(a.indexOf(2), a.indexOf(NaN)); //1 -1
//.indexOf則有缺陷
8 數(shù)組的空位

數(shù)組的空位指,數(shù)組的某一個(gè)位置沒(méi)有任何值

空位不是undefined,一個(gè)位置的值等于undefined,依然是有值的。空位是沒(méi)有任何值

forEach(), filter(), every()some()都會(huì)跳過(guò)空位。

map()會(huì)跳過(guò)空位,但會(huì)保留這個(gè)值

join()toString()會(huì)將空位視為undefined,而undefined和null會(huì)被處理成空字符串。

ES6則是明確將空位轉(zhuǎn)為undefined

Array.from方法會(huì)將數(shù)組的空位,轉(zhuǎn)為undefined

擴(kuò)展運(yùn)算符(...)也會(huì)將空位轉(zhuǎn)為undefined

copyWithin()會(huì)連空位一起拷貝

fill()會(huì)將空位視為正常的數(shù)組位置

for...of循環(huán)也會(huì)遍歷空位

entries()keys()values()find()findIndex()會(huì)將空位處理成undefined

9 ES7:數(shù)組推導(dǎo)

ES7的新功能,允許直接通過(guò)現(xiàn)有數(shù)組生成新數(shù)組

var a1 = [1, 2, 3, 4];
var a2 = [for (i of a1) i * 2];

a2 // [2, 4, 6, 8]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/79106.html

相關(guān)文章

  • ECMAScript6(6):數(shù)組擴(kuò)展

    摘要:數(shù)組的擴(kuò)展將類(lèi)數(shù)組對(duì)象和可遍歷對(duì)象轉(zhuǎn)化為真正的數(shù)組。這兩個(gè)函數(shù)的參數(shù)都是回調(diào)函數(shù)。遍歷數(shù)組找到符合條件回調(diào)函數(shù)返回為的第一個(gè)值返回其值返回其下標(biāo)。這三個(gè)方法用來(lái)遍歷數(shù)組返回一個(gè)遍歷器供使用其中是對(duì)鍵的遍歷是對(duì)值的遍歷是對(duì)鍵值對(duì)的遍歷。 數(shù)組的擴(kuò)展 Array, from() 將類(lèi)數(shù)組對(duì)象和可遍歷對(duì)象轉(zhuǎn)化為真正的數(shù)組。 var arrayLike = { 0 : a, 1 : b...

    DrizzleX 評(píng)論0 收藏0
  • 【前端】ES6入門(mén)基礎(chǔ)知識(shí)

    摘要:關(guān)于的入門(mén)了解新增模板字符串為提供了簡(jiǎn)單的字符串插值功能箭頭函數(shù)操作符左邊為輸入的參數(shù),而右邊則是進(jìn)行的操作以及返回的值。將對(duì)象納入規(guī)范,提供了原生的對(duì)象。增加了和命令,用來(lái)聲明變量。 關(guān)于ES6的入門(mén)了解 新增模板字符串(為JavaScript提供了簡(jiǎn)單的字符串插值功能)、箭頭函數(shù)(操作符左邊為輸入的參數(shù),而右邊則是進(jìn)行的操作以及返回的值Inputs=>outputs。)、for-o...

    philadelphia 評(píng)論0 收藏0
  • ECMAScript6 特性——“l(fā)et和const命令”

    摘要:基本用法所聲明的變量,只在命令所在的代碼塊內(nèi)有效。在循環(huán)中適合使用不存在變量提升不像那樣會(huì)發(fā)生變量提升現(xiàn)象暫時(shí)性死區(qū)只要塊級(jí)作用域內(nèi)存在命令,它所聲明的變量就綁定這個(gè)區(qū)域,不再受外部的影響。塊級(jí)作用域?qū)嶋H上為新增了塊級(jí)作用域。 1 let 基本用法 所聲明的變量,只在let命令所在的代碼塊內(nèi)有效。 { let b = 100; console.log(b); //100...

    PascalXie 評(píng)論0 收藏0
  • ECMAScript6 特性——“正則擴(kuò)展

    摘要:第二個(gè)參數(shù)指定修飾符,如果存在則使用指定的修飾符。屬性表示是否設(shè)置了修飾符屬性的屬性返回正則表達(dá)式的正文的屬性返回正則表達(dá)式的修飾符字符串必須轉(zhuǎn)義,才能作為正則模式。 1 RegExp構(gòu)造函數(shù) ES6 允許RegExp構(gòu)造函數(shù)接受正則表達(dá)式作為參數(shù)。第二個(gè)參數(shù)指定修飾符,如果存在則使用指定的修飾符。 var regexp = new RegExp(/xyz/i, ig); consol...

    Shisui 評(píng)論0 收藏0
  • ECMAScript6 特性——“數(shù)值擴(kuò)展

    摘要:二進(jìn)制和八進(jìn)制表示法提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法,分別用前綴或和或表示。用來(lái)檢查是否為有窮以及是否為這兩個(gè)新方法只對(duì)數(shù)值有效,非數(shù)值一律返回。引入了和這兩個(gè)常量,用來(lái)表示這個(gè)范圍的上下限。因?yàn)橛芯认拗疲^(guò)的次方的值無(wú)法精確表示。 1 二進(jìn)制和八進(jìn)制表示法 ES6提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法,分別用前綴0b(或0B)和0o(或0O)表示。 console.log(0b10...

    Dean 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<