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

資訊專欄INFORMATION COLUMN

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

Eminjannn / 2785人閱讀

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

1 Array.from()

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

語法如下:

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會返回一個一模一樣的數(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屬性的對象,都可以通過Array.from方法轉(zhuǎn)為數(shù)組

Array.from還可以接受第二個參數(shù),作用類似于數(shù)組的map方法,用來對每個元素進(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)鍵字,還可以傳入該方法第三個參數(shù),用來綁定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]

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

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

在當(dāng)前數(shù)組內(nèi)部,將指定位置的成員復(fù)制到其他位置(會覆蓋原有成員),然后返回當(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); //原來的a也被修改了

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

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

它的參數(shù)是一個回調(diào)函數(shù),所有數(shù)組成員依次執(zhí)行該回調(diào)函數(shù),直到找出第一個返回值為true的成員,然后返回該成員。如果沒有符合條件的成員,則返回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方法,返回第一個符合條件的數(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ù)組實例的fill()

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

方法還可以接受第二個和第三個參數(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ù)組實例的entries(),keys(),values()

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

keys()是對鍵名的遍歷

values()是對鍵值的遍歷

entries()是對鍵值對的遍歷

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ù)組實例的includes()

方法返回一個布爾值,表示某個數(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ù)組的某一個位置沒有任何值

空位不是undefined,一個位置的值等于undefined,依然是有值的。空位是沒有任何值

forEach(), filter(), every()some()都會跳過空位。

map()會跳過空位,但會保留這個值

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

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

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

擴展運算符(...)也會將空位轉(zhuǎn)為undefined

copyWithin()會連空位一起拷貝

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

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

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

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

ES7的新功能,允許直接通過現(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

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

相關(guān)文章

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

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

    DrizzleX 評論0 收藏0
  • 【前端】ES6入門基礎(chǔ)知識

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

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

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

    PascalXie 評論0 收藏0
  • ECMAScript6 特性——“正則擴展

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

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

    摘要:二進(jìn)制和八進(jìn)制表示法提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫法,分別用前綴或和或表示。用來檢查是否為有窮以及是否為這兩個新方法只對數(shù)值有效,非數(shù)值一律返回。引入了和這兩個常量,用來表示這個范圍的上下限。因為有精度限制,超過的次方的值無法精確表示。 1 二進(jìn)制和八進(jìn)制表示法 ES6提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫法,分別用前綴0b(或0B)和0o(或0O)表示。 console.log(0b10...

    Dean 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<