擴充套件運算子(...將陣列分割為用逗號分割的引數序列)
console.log(...[1,2,3]) //1 2 3
functiontest(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 = newmap(
[[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...