成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6: 數(shù)組

lavor / 1506人閱讀

摘要:中的方法遍歷一下數(shù)組中的每個選項返回一個新的數(shù)組。還可以接受第二個參數(shù),作用類似與數(shù)組的方法,用于對每個元素進行處理。這個方式是用于將一組值,轉(zhuǎn)換為數(shù)組??蛇x到該位置前停止讀取數(shù)據(jù),默認等于數(shù)組長度。如果是負數(shù),表示倒數(shù)。

ES6中數(shù)組增加了很多新的方法,但是先回顧下之前ES5中的數(shù)組的方法。

ES5中的方法

Array.prototype.forEach
遍歷一下數(shù)組中的每個選項

Array.prototype.map, Array.prototype.filter: 返回一個新的數(shù)組。
兩者的區(qū)別是:map返回的是,由原數(shù)組中的每個元素調(diào)用一個方法后返回的新數(shù)組;filter是通過指定函數(shù)測試,然后創(chuàng)建了個新的數(shù)組;

Array.prototype.some,Array.prototype.every: 返回的是Boolean值
some只要有一個符號就返回;every只要有一個不符合就返回。

Array.prototype.reduce, Array.prototype.reduceRight:相當于一個迭代的過程,返回最終的結(jié)果??梢詡?個參數(shù):previous, current, index, array.

indexOf, lastIndexOf

ES6中新增的方法 Array.from()

這個方法是將對象轉(zhuǎn)為真正的數(shù)組,這個對象有兩種類型:類似數(shù)組的對象和可遍歷的對象(如ES6中的Set和Map)

let arrayLike = {
    "0": "a",
    "1": "b",
    "2": "c",
    length: 3
};

// ES5的寫法
var arr1 = [].slice.call(arrayLike); // ["a", "b", "c"]

// ES6的寫法
let arr2 = Array.from(arrayLike); // ["a", "b", "c"]

常用的場景

常見的類似數(shù)組對象是NodeList集合和arguments

Array.from("hello");//["h","e","l","l","o"]

let namesSet = new Set(["a","b"])
Array.from(namesSet);//["a","b"]

Array.from([1,2,3])//[1,2,3]

但有一點,擴展運算符(...)也可以將某些數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)為數(shù)組

var args = [...arguments];

[...document.querySelectorAll("div")]

其實擴展運算符背后調(diào)用的是遍歷器接口(Symbol.iterator),如果一個對象沒有部署成這個接口,就無法轉(zhuǎn)換。Array.from方法則還支持類似的數(shù)組對象,但是這種類似數(shù)組對象,必須要有l(wèi)ength屬性,如果沒有,就不能轉(zhuǎn)換。

Array.from還可以接受第二個參數(shù),作用類似與數(shù)組的map方法,用于對每個元素進行處理。

Array.of()

這個方式是用于將一組值,轉(zhuǎn)換為數(shù)組。

Array.of(3,11,8)//[3,11,8]

這個方法的主要目的,是彌補數(shù)組構(gòu)造函數(shù)Array()的不足

new Array(3)//[undefined*3]

Array.of可以替代Array()或者new Array()

Array.of()//[]
Array.of(undefined)//[undefined]
Array.of(1)//[1]
Array.of(1,2)//[1,2]
copyWidthin()

將制定位置的成員復制到其他位置,然后返回當前數(shù)組,就是使用這個方法,修改當前數(shù)組。
Array.prototype.copyWithin(target, start = 0, end = this.length)

target(必選):從該位置開始替換數(shù)據(jù)

start(可選):從該位置開始讀取數(shù)據(jù),默認為0,如果是負數(shù),表示倒數(shù)。

end(可選):到該位置前停止讀取數(shù)據(jù),默認等于數(shù)組長度。如果是負數(shù),表示倒數(shù)。

[1,2,3,4,5].copyWidthin(0, 3)//[4,5,3,4,5]

[1,2,3,4,5].copyWidthin(0,3,4)//[3,2,3,4,5]
[1,2,3,4,5].copyWidthin(0,-2,-1)//[4,2,3,4,5]

find(), findIndex()

find(): 用于找到第一個符合條件的數(shù)組成員
findIndex(): 返回第一個符合條件的數(shù)組成員位置

fill()

這個方式使用一個定值,填充一個數(shù)組

["a","b","c"].fill(7)//[7,7,7]
entries() keys() values()
for (let index of ["a", "b"].keys()) {
  console.log(index);
}
// 0
// 1

for (let elem of ["a", "b"].values()) {
  console.log(elem);
}
// "a"
// "b"

for (let [index, elem] of ["a", "b"].entries()) {
  console.log(index, elem);
}
// 0 "a"
// 1 "b"
includes()

這個方法表示某個數(shù)組是否包含給定的值

數(shù)組的空位,數(shù)組的空位和undefined不是同一個概念

0 in [undefined, undefined, undefined] // true
0 in [, , ,] // false
空位處理

ES5中

forEach,filter,every,some會跳過空位
map會跳過空位,但會保留這個值
join(),toString()會將空位視為undefined,而undefined和null會被處理成空字符串.

ES6會將空位轉(zhuǎn)為undefined.

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86852.html

相關(guān)文章

  • Javascript內(nèi)置對象新增接口列表

    網(wǎng)上很少有提供不同版本接口對比的文章,所以自己總結(jié)一下。 Array Method Description Modify Version concat 連接多個數(shù)組,返回數(shù)組副本,參數(shù)可以為值或數(shù)組 否 ES3 join 把數(shù)組元素組合為字符串 否 ES3 pop 刪除并返回最后一個元素 是 ES3 push 向數(shù)組末尾添加一個或多個值,返回數(shù)組長度 是 ES3 reve...

    xuhong 評論0 收藏0
  • ES6核心特性

    摘要:報錯不報此外還有個好處就是簡化回調(diào)函數(shù)正常函數(shù)寫法箭頭函數(shù)寫法改變指向長期以來,語言的對象一直是一個令人頭痛的問題,在對象方法中使用,必須非常小心。 前言 ES6 雖提供了許多新特性,但我們實際工作中用到頻率較高并不多,根據(jù)二八法則,我們應(yīng)該用百分之八十的精力和時間,好好專研這百分之二十核心特性,將會收到事半功倍的奇效!寫文章不容易,請大家多多支持與關(guān)注!本文首發(fā)地址GitHub博客(...

    loostudy 評論0 收藏0
  • ES6核心特性

    摘要:報錯不報此外還有個好處就是簡化回調(diào)函數(shù)正常函數(shù)寫法箭頭函數(shù)寫法改變指向長期以來,語言的對象一直是一個令人頭痛的問題,在對象方法中使用,必須非常小心。 前言 ES6 雖提供了許多新特性,但我們實際工作中用到頻率較高并不多,根據(jù)二八法則,我們應(yīng)該用百分之八十的精力和時間,好好專研這百分之二十核心特性,將會收到事半功倍的奇效!寫文章不容易,請大家多多支持與關(guān)注!本文首發(fā)地址GitHub博客(...

    _DangJin 評論0 收藏0
  • [ ES6 ] 快速掌握常用 ES6 (二)

    摘要:本系列文章適合快速掌握入門語法,想深入學習的小伙伴可以看看阮一峰老師的入門本篇文章是對之前文章的一個補充,可以使代碼更簡潔函數(shù)參數(shù)默認值在傳統(tǒng)語法中如果想設(shè)置函數(shù)默認值一般我們采用判斷的形式在新的語法中我們可以在參數(shù)聲明的同時賦予默認值參數(shù) 本系列文章適合快速掌握 ES6 入門語法,想深入學習 ES6 的小伙伴可以看看阮一峰老師的《ECMAScript 6 入門》 本篇文章是對之前文章...

    hidogs 評論0 收藏0
  • 你該知道的ES6那些事兒

    摘要:最近重構(gòu)了一個項目,引入了部分用法,最大的感受是讓這門語言變得更加嚴謹,更加方便。通過該方法獲得位置后還得比較一次才能判斷是否存在。再來看看的寫法使用數(shù)組來初始化一個,構(gòu)造器能確保不重復地使用這些值。下面提供鏈接,供有興趣的朋友參考。 最近重構(gòu)了一個SPA項目,引入了部分ES6用法,最大的感受是ES6讓javascript這門語言變得更加嚴謹,更加方便。本篇將結(jié)合實戰(zhàn)經(jīng)驗,對最常用的部...

    CoffeX 評論0 收藏0

發(fā)表評論

0條評論

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