ES6學習之陣列擴充套件

2022-09-15 17:12:13 字數 3258 閱讀 6410

擴充套件運算子(...將陣列分割為用逗號分割的引數序列)

console.log(...[1,2,3]) //

1 2 3

function

test(x,y,z)

var arg = [1,2,3];

null,arg) //

//1 2 3

test(...arg) //

1 2 3

擴充套件運算子的應用

const a = [1, 2];

//複製陣列a

const b = [...a] //

方法1const [...b] = a; //

方法2

const a = [1, 2];

const b = [3, 4];

const c = [...a, ...b]; //

[ 1, 2, 3, 4 ]

const [first, ...rest] = [1, 2, 3, 4, 5, 6];

console.log(first); //1

console.log(rest); //

[ 2, 3, 4, 5, 6 ]

const a = [..."hello"];

console.log(a)

//[ 'h', 'e', 'l', 'l', 'o' ]

let nodelist = document.queryselectorall('div');

let array = [...nodelist];

let map = new

map(

[[1, "hello"],

[2, "es6"],

[3, "test"]

])let arr1 = [...map.keys()]; //

[ 1, 2, 3 ]

let arr2 = [...map.values()]; //

[ 'hello', 'es6', 'test' ]

let arr3 = [...map.entries()]; //

[ [ 1, 'hello' ], [ 2, 'es6' ], [ 3, 'test' ] ]

array.from()(將類似陣列的物件和可遍歷的物件轉化為陣列,只要具有length屬性都能轉)

let arraylike =;

let arr = array.from(arraylike); //

[ 'a', 'b', 'c' ];

let str = "hello";

let arr2 = array.from(str); //

[ 'h', 'e', 'l', 'l', 'o' ]

array.from還可以接受第二個引數,作用類似於陣列的map方法,用來對每個元素進行處理,將處理後的值放入返回的陣列

let a = array.from([1, 2, 3], x => x * x);  //

[ 1, 4, 9 ]

array.of()(用於將一組值轉化為陣列,基本可以代替array()和new array())

let a0 = array(0)   //

let a1 = array.of(0); //

[0]let b0 = array.of(1, 2, 3) //

[ 1, 2, 3 ]

let b1 = array(1, 2, 3) //

[ 1, 2, 3 ]

copywithin()(將指定位置的成員複製到其他位置(會覆蓋原有成員),然後返回當前陣列。使用這個方法,會修改當前陣列。)

array.prototype.copywithin(target, start = 0, end = this

.length);

//接受三個引數

//target(必需):從該位置開始替換資料

//start(可選):從該位置開始讀取資料,預設為0。如果為負值,表示倒數。

//end(可選):到該位置前停止讀取資料,預設等於陣列長度。如果為負值,表示倒數。

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

//[4, 5, 3, 4, 5]

find()和findindex()

[1, 4, -5, 10].find((n) => n < 0) //

-5

[1, 5, 10, 15].findindex(function

(value, index, arr) )

//2

fill()(使用給定值,填充乙個陣列)

['a', 'b', 'c'].fill(7)  //

[7, 7, 7]

entries(),keys() 和 values()(keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷)

for (let index of ['a', 'b'].keys()) //0

//1for (let elem of ['a', 'b'].values())

//'a'

//'b'

for (let [index, elem] of ['a', 'b'].entries())

//0 "a"

//1 "b"

includes()(陣列中尋找陣列成員,找到範圍true,否則返回false)

[1, 2, 3].includes(2)     //

true

[1, 2, 3].includes(4) //

false

[1, 2, nan].includes(nan) //

true

接收第二個引數,表示開的的位置

[1,2,3].includes(2,2)   //

false

Es6陣列擴充套件

示例 es5和es6的擴充套件運算子區別 let arr 1,2,3 function add a,b,c es5 es6 add arr 6 複製陣列 let arr 1,2,3 es5 let arr3 arr.concat 4 es6 let arr3 arr,4 console.log ar...

ES6陣列擴充套件

陣列建構函式的靜態方法。靜態方法 把函式當物件處理 key對應的value是函式 我們就說這個方法是靜態方法 否則就是靜態屬性 array.f 1 console.log array.f 靜態屬性 array.fn function array.fn 靜態方法array.from方法用於將兩類物件轉...

ES6之陣列的擴充套件

es6在陣列方面增加了一些方法和原型屬性,有些還是蠻有用的。擴充套件運算子 把陣列或者類陣列轉成用逗號隔開的引數 把類陣列轉成陣列,有限制 類陣列就是有長度的變數 var str wade console.log str w a d e 把陣列轉成用逗號隔開的引數序列 var arr 1,2,3 c...