摘要:中的方法遍歷一下數(shù)組中的每個(gè)選項(xiàng)返回一個(gè)新的數(shù)組。還可以接受第二個(gè)參數(shù),作用類(lèi)似與數(shù)組的方法,用于對(duì)每個(gè)元素進(jìn)行處理。這個(gè)方式是用于將一組值,轉(zhuǎn)換為數(shù)組。可選到該位置前停止讀取數(shù)據(jù),默認(rèn)等于數(shù)組長(zhǎng)度。如果是負(fù)數(shù),表示倒數(shù)。
ES6中數(shù)組增加了很多新的方法,但是先回顧下之前ES5中的數(shù)組的方法。
ES5中的方法Array.prototype.forEach
遍歷一下數(shù)組中的每個(gè)選項(xiàng)
Array.prototype.map, Array.prototype.filter: 返回一個(gè)新的數(shù)組。
兩者的區(qū)別是:map返回的是,由原數(shù)組中的每個(gè)元素調(diào)用一個(gè)方法后返回的新數(shù)組;filter是通過(guò)指定函數(shù)測(cè)試,然后創(chuàng)建了個(gè)新的數(shù)組;
Array.prototype.some,Array.prototype.every: 返回的是Boolean值
some只要有一個(gè)符號(hào)就返回;every只要有一個(gè)不符合就返回。
Array.prototype.reduce, Array.prototype.reduceRight:相當(dāng)于一個(gè)迭代的過(guò)程,返回最終的結(jié)果。可以傳4個(gè)參數(shù):previous, current, index, array.
indexOf, lastIndexOf
ES6中新增的方法 Array.from()這個(gè)方法是將對(duì)象轉(zhuǎn)為真正的數(shù)組,這個(gè)對(duì)象有兩種類(lèi)型:類(lèi)似數(shù)組的對(duì)象和可遍歷的對(duì)象(如ES6中的Set和Map)
let arrayLike = { "0": "a", "1": "b", "2": "c", length: 3 }; // ES5的寫(xiě)法 var arr1 = [].slice.call(arrayLike); // ["a", "b", "c"] // ES6的寫(xiě)法 let arr2 = Array.from(arrayLike); // ["a", "b", "c"]
常用的場(chǎng)景
常見(jiàn)的類(lèi)似數(shù)組對(duì)象是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]
但有一點(diǎn),擴(kuò)展運(yùn)算符(...)也可以將某些數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)為數(shù)組
var args = [...arguments]; [...document.querySelectorAll("div")]
其實(shí)擴(kuò)展運(yùn)算符背后調(diào)用的是遍歷器接口(Symbol.iterator),如果一個(gè)對(duì)象沒(méi)有部署成這個(gè)接口,就無(wú)法轉(zhuǎn)換。Array.from方法則還支持類(lèi)似的數(shù)組對(duì)象,但是這種類(lèi)似數(shù)組對(duì)象,必須要有l(wèi)ength屬性,如果沒(méi)有,就不能轉(zhuǎn)換。
Array.from還可以接受第二個(gè)參數(shù),作用類(lèi)似與數(shù)組的map方法,用于對(duì)每個(gè)元素進(jìn)行處理。
Array.of()這個(gè)方式是用于將一組值,轉(zhuǎn)換為數(shù)組。
Array.of(3,11,8)//[3,11,8]
這個(gè)方法的主要目的,是彌補(bǔ)數(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()
將制定位置的成員復(fù)制到其他位置,然后返回當(dāng)前數(shù)組,就是使用這個(gè)方法,修改當(dāng)前數(shù)組。
Array.prototype.copyWithin(target, start = 0, end = this.length)
target(必選):從該位置開(kāi)始替換數(shù)據(jù)
start(可選):從該位置開(kāi)始讀取數(shù)據(jù),默認(rèn)為0,如果是負(fù)數(shù),表示倒數(shù)。
end(可選):到該位置前停止讀取數(shù)據(jù),默認(rèn)等于數(shù)組長(zhǎng)度。如果是負(fù)數(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(): 用于找到第一個(gè)符合條件的數(shù)組成員
findIndex(): 返回第一個(gè)符合條件的數(shù)組成員位置
這個(gè)方式使用一個(gè)定值,填充一個(gè)數(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()
這個(gè)方法表示某個(gè)數(shù)組是否包含給定的值
數(shù)組的空位,數(shù)組的空位和undefined不是同一個(gè)概念
0 in [undefined, undefined, undefined] // true 0 in [, , ,] // false空位處理
ES5中
forEach,filter,every,some會(huì)跳過(guò)空位 map會(huì)跳過(guò)空位,但會(huì)保留這個(gè)值 join(),toString()會(huì)將空位視為undefined,而undefined和null會(huì)被處理成空字符串. ES6會(huì)將空位轉(zhuǎn)為undefined.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/86852.html
網(wǎng)上很少有提供不同版本接口對(duì)比的文章,所以自己總結(jié)一下。 Array Method Description Modify Version concat 連接多個(gè)數(shù)組,返回?cái)?shù)組副本,參數(shù)可以為值或數(shù)組 否 ES3 join 把數(shù)組元素組合為字符串 否 ES3 pop 刪除并返回最后一個(gè)元素 是 ES3 push 向數(shù)組末尾添加一個(gè)或多個(gè)值,返回?cái)?shù)組長(zhǎng)度 是 ES3 reve...
摘要:報(bào)錯(cuò)不報(bào)此外還有個(gè)好處就是簡(jiǎn)化回調(diào)函數(shù)正常函數(shù)寫(xiě)法箭頭函數(shù)寫(xiě)法改變指向長(zhǎng)期以來(lái),語(yǔ)言的對(duì)象一直是一個(gè)令人頭痛的問(wèn)題,在對(duì)象方法中使用,必須非常小心。 前言 ES6 雖提供了許多新特性,但我們實(shí)際工作中用到頻率較高并不多,根據(jù)二八法則,我們應(yīng)該用百分之八十的精力和時(shí)間,好好專(zhuān)研這百分之二十核心特性,將會(huì)收到事半功倍的奇效!寫(xiě)文章不容易,請(qǐng)大家多多支持與關(guān)注!本文首發(fā)地址GitHub博客(...
摘要:報(bào)錯(cuò)不報(bào)此外還有個(gè)好處就是簡(jiǎn)化回調(diào)函數(shù)正常函數(shù)寫(xiě)法箭頭函數(shù)寫(xiě)法改變指向長(zhǎng)期以來(lái),語(yǔ)言的對(duì)象一直是一個(gè)令人頭痛的問(wèn)題,在對(duì)象方法中使用,必須非常小心。 前言 ES6 雖提供了許多新特性,但我們實(shí)際工作中用到頻率較高并不多,根據(jù)二八法則,我們應(yīng)該用百分之八十的精力和時(shí)間,好好專(zhuān)研這百分之二十核心特性,將會(huì)收到事半功倍的奇效!寫(xiě)文章不容易,請(qǐng)大家多多支持與關(guān)注!本文首發(fā)地址GitHub博客(...
摘要:本系列文章適合快速掌握入門(mén)語(yǔ)法,想深入學(xué)習(xí)的小伙伴可以看看阮一峰老師的入門(mén)本篇文章是對(duì)之前文章的一個(gè)補(bǔ)充,可以使代碼更簡(jiǎn)潔函數(shù)參數(shù)默認(rèn)值在傳統(tǒng)語(yǔ)法中如果想設(shè)置函數(shù)默認(rèn)值一般我們采用判斷的形式在新的語(yǔ)法中我們可以在參數(shù)聲明的同時(shí)賦予默認(rèn)值參數(shù) 本系列文章適合快速掌握 ES6 入門(mén)語(yǔ)法,想深入學(xué)習(xí) ES6 的小伙伴可以看看阮一峰老師的《ECMAScript 6 入門(mén)》 本篇文章是對(duì)之前文章...
摘要:最近重構(gòu)了一個(gè)項(xiàng)目,引入了部分用法,最大的感受是讓這門(mén)語(yǔ)言變得更加嚴(yán)謹(jǐn),更加方便。通過(guò)該方法獲得位置后還得比較一次才能判斷是否存在。再來(lái)看看的寫(xiě)法使用數(shù)組來(lái)初始化一個(gè),構(gòu)造器能確保不重復(fù)地使用這些值。下面提供鏈接,供有興趣的朋友參考。 最近重構(gòu)了一個(gè)SPA項(xiàng)目,引入了部分ES6用法,最大的感受是ES6讓javascript這門(mén)語(yǔ)言變得更加嚴(yán)謹(jǐn),更加方便。本篇將結(jié)合實(shí)戰(zhàn)經(jīng)驗(yàn),對(duì)最常用的部...
閱讀 819·2021-10-25 09:48
閱讀 611·2021-08-23 09:45
閱讀 2496·2019-08-30 15:53
閱讀 1759·2019-08-30 12:45
閱讀 586·2019-08-29 17:21
閱讀 3407·2019-08-27 10:56
閱讀 2547·2019-08-26 13:48
閱讀 691·2019-08-26 12:24