ES6数组扩展

1.Array.from用于将类似数组的对象和可遍历的对象转为真正的数组。

Array.from('hello') //['h','e','l','l','0']
Array.from([1,2,3],(x)=>x*x) //[1,4,9]
2.Array.of将一组值转化为数组

Array.of(3,11,8) //[3,11,8]
Array.of(3) //[3]
3.数组实例的copyWithin(),在当前数组内部,将指定位置的成员复制到其他位置(覆盖原有成员),返回当前被修改后的数组

它接受三个参数。

  • target(必需):从该位置开始替换数据。
  • start(可选):从该位置开始读取数据,默认为0。如果为负值,表示倒数。
  • end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
[1,2,3,4,5].copyWithin(0,3) //[4,5,3,4,5]
[1,2,3,4,5].copyWithin(0,3,4) //[4,2,3,4,5]
4.数组实例的find方法,用于找出第一个符合条件的数组成员。findIndex返回第一个符合条件的数组成员的位置。

[1,4,-5,10].find((n)=>n<0) //-5
[1,2,3,4,5].findIndex(function(value,index,arr){return value>3}) //3

5.数组实例的fill方法使用给定值,填充一个数组,第二和第三个参数用于指定起始位置和结束位置

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

6.数组实例entries(),keys(),values()用于遍历数组。可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历

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'
如果不使用for...of循环,可以手动调用遍历器对象的next方法,进行遍历
let letter=['a','b','c'];
let entries=letter.entries();
console.log(entries.next().value);//[0,'a']
console.log(entries.next().value);//[1,'a']
console.log(entries.next().value);//[2,'b']
7.数组实例的includes()返回布尔值,表示某个数组是否包含给定的值,更加语义化。
[1,2,3]includes(1);  //true
[1,2,3]includes(4);  //false
[1,2,NAN]includes(NAN);  //true


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章