ES6中数组新增的功能

82 阅读2分钟
  • Array.of() :将参数中所有值作为元素形成一个数组。(与new Array()相似)
arr=Array.of(12,55,67,43)
arr1=new Array(12,55,67,43)
console.log(arr,arr1)

image.png Array.of()与new Array()的区别

arr=Array.of(12)//创建一个元素为12的数组
arr1=new Array(12)//创建一个长度为12的空数组
console.log(arr,arr1)

image.png

  • Array.from() :将类数组对象或可迭代对象转化为数组。
let s1=new Set([12,45,79,00])
let arr=Array.from(s1)//将set集合转为数组
console.log(s1,arr)

image.png

 let str='atedbdf'
 console.log(Array.from(str))//将字符串转换为数组

image.png

参数说明:Array.from(arrayLike[, mapFn[, thisArg]])
(1)arrayLike:想要转换的类数组对象或可迭代对象。
(2)mapFn:可选,map 函数,用于对每个元素进行处理,放入数组的是处理后的元素。
(3)thisArg:可选,用于指定 map 函数执行时的 this 对象。

 let obj = {
    say:function(n){return n*n }
  }
  let arr = [1, 2, 3, 4]
  console.log(Array.from(arr, function(n){return this.say(n)},obj))

image.png

  • find() :查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。
  var  arr=[10,12,203,400,2,3,5,6]
  var  re=arr.find(function(el){
	 if(el>18){return true}
	})//当参数函数的返回值为true时,说明需要的元素找到了,并打印它
  console.log(re)

image.png

  • findIndex() :查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。
  var  arr=[10,12,203,400,2,3,5,6]
  var  re=arr.findIndex(function(el){
	 if(el>18){return true}
	})//当参数函数的返回值为true时,说明需要的元素找到了,并打印它的下标
	console.log(re)

image.png

  • fill() :将一定范围索引的数组元素内容填充为单个指定的值。
 var  arr=[10,12,22,3,5,6]
 var  re=arr.fill('hi',1,4)//的一个参数为需要填充的值,第二个参数为开始填充的起始值,第三个为填充的结束值,一般这种起始都是左闭右开[1,4)
 console.log(re)

image.png

  • includes() :数组是否包含指定值。
 var arr = [10, 12, 22, 3, 5, 6]
  var re = arr.includes(22)
  console.log(re, arr.includes('see'))

image.png

  • flat():为多重数组减重
 var arr = [10, [123,44,[43,42]],[12,11,[23,4]], 5,[13,4],6]
  var re = arr.flat(1)//参数为减少几重,这里1重
  var re1 = arr.flat(2)//减少2重
  console.log(re)
  console.log(re1)

image.png