数组的ES6方法(回顾)

  • from
  • of
  • fill *
  • flat
  • findIndex
  • includes
  • copyWithin *
  • entries(),keys(),values()

Array.from(arrayLike, callback, thisArg)

定义:转换一个类数组或可迭代对象,返回数组

参数1:被转换的类数组或可迭代对象

参数2:回调函数,可选

参数3:回调的this指向,可选

var arrLike = { 0: 1, 1: 2, length: 2 };
var res = Array.from(
  arrLike,
  function (v, i, arr) {
    console.log(v, i, arr);// 0 1 undefined 
    console.log(this);//{a:1}
    return v + 1;
  },
  { a: 1 }
);
console.log(res);//[2,3]

Array.of(element1, …)

定义:创建一个数组
注意:解决了当参数只有一个时,new Array()会生成稀松数组

new Array(3);// [empty × 3]
Array.of(3);// [3]

arr.fill(value, start, end)

定义:用一个固定值填充一个数组,返回新数组,回改变原数组

参数1:需要填充的数组

参数2:起始索引,可选,默认值为 0

参数3:终止索引,可选,默认值为 this.length

var arr = new Array(4);
console.log(arr.fill(undefined, 1, 4));//[empty,undefined,undefined,undefined]
console.log(arr);//[empty,undefined,undefined,undefined]

arr.find(callback,thisArg)

定义:检测当前数组是否包含满足提供的测试函数的项,返回该项,没找到返回 undefined

var arr = [1,2,3]
arr.find((v,i) => i===2);//3

arr.includes(x,start)

定义:检测当前数组是否包含某项,返回布尔值

var arr = [1,2,3];
arr.includes(1);//true
arr.includes(1,1);//false

arr.copyWithin(target, start end)

定义:复制数组的一部分到同一数组中的另一个位置,并返回新数组,会改变原数组

参数1:复制序列的位置

参数2:初始复制索引

参数3:终止赋值索引

var arr = [1, 2, 3, 4, 5];
console.log(arr.copyWithin(0, 3, 4));//[4,2,3,4,5]
console.log(arr);//[4,2,3,4,5]

entries(), keys(), values()

arr.entries()

定义:返回一个包含数组键值对Iterator 对象

var arr = [1,2,3];
var temp = arr.entries();
console.log(temp);//Array Iterator {}
for(var [i,v] of temp){
    console.log([i,v])//[0,1] [1,2] [2,3]
}

arr.keys()

定义:返回一个包含数组索引Iterator 对象

var arr = [1,2,3];
var temp = arr.keys();
console.log(temp);//Array Iterator {}
for(var i of temp){
    console.log(i)//0 1 2
}

arr.values()

定义:返回一个包含数组索引值Iterator 对象

var arr = [1,2,3];
var temp = arr.values();
console.log(temp);//Array Iterator {}
for(var v of temp){
    console.log(v)//1 2 3
}

你可能感兴趣的:(#,js基础,es6,javascript,前端)