ES6 常用数组方法(一)

Array.from
Array.from函数是用来将类似数组的对象(array-like-object)和可遍历的对象(包含es6的set 和map)转化为真正的数组。
基本用法:

let people = {
    
    
	"1":"Jack",
	"2":"Alice",
	"3":"Peter",
	length:4
};

// ES5的写法
var peopleArr1 = [].slice.call(people); // [ <empty item>, 'Jack', 'Alice', 'Peter' ]


// ES6的写法
let peopleArr2 = Array.from(people); // [ undefined, 'Jack', 'Alice', 'Peter' ]

注意:数组有length属性 所以length必须要加 不加length会返回空数组

当参数为一个真数组时 会返回一个一模一样的数组

Array.from(["Jack","Alice","Peter"])   //["Jack","Alice","Peter"]

Array.form的第二个参数,其用途类似于map,可以对每个元素进行处理,然后放入返回数组。

Array.from(people).map(item=>{
    
    item+="-"})
等同于
Array.from(people,item=>item+="-")

//["Alice-","peter-","Jack-"]

Array.of()
Array.of 的参数为一组值,起作用为把这组值转为数组
基本用法:

Array.of(1,2,3,4)			//[1,2,3,4]

有些类似函数中的argument

copyWithin
copyWithin 可以获取数组的一部分,并且将其从指定位置开始覆盖,然后返回当前数组。 注意:copyWithin会修改当前数组

copyWithin 接收三个参数

  1. target(number 必选) 从指定位置开始覆盖
  2. start(number 可选) 从指定位置开始读取,默认为0,若为负数,则为倒数
  3. 3end(number 可选) 读取到指定位置终止,默认为数组的长度,若为负数,则为倒数

基本用法:

let arr=["Alice","Peter","Jack","James","John"]
arr.copyWithin(0,3)
//["James","John","Jack","James","John"]

以上代码读取部分为数组下标为3的元素到最后一个元素 ,然后开始从第0个元素开始覆盖

find
find方法用于找出数组中一个(切记是一个)符合条件的元素,参数为一个回调函数,直到找出第一个符合条件的元素,然后将其返回,若没有符合条件元素,返回undefined。
基本用法:

扫描二维码关注公众号,回复: 12517925 查看本文章
let arr=[3,4,5,6,7,8]
arr.find(n=>n%5===0)
//5

上面代码为获取第一个能被5整除的数字
若想获取符合条件的元素的下标 可以用findIndex,用法基本一致,若找到符合条件的元素返回该元素下标,若没找到返回-1

let arr=[1,2,3,4,5,6]
arr.findIndex(n=>n>1)			//1
arr.findIndex(n=>n>10)			//-1

猜你喜欢

转载自blog.csdn.net/weixin_38987500/article/details/106713580
今日推荐