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 接收三个参数
- target(number 必选) 从指定位置开始覆盖
- start(number 可选) 从指定位置开始读取,默认为0,若为负数,则为倒数
- 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