1.剩余参数
function sum (first,...args){
console.log(first) //10
console.log(args) //[20,30]
}
sum(10,20,30)
1.1.剩余参数和解构赋值配合使用
let names = ['daiwang','LeiLei','lingling']
let [s1,...s2] = names
console.log(s1) //'daiwang'
console.log(s2) //['LeiLei','LingLing']
2.ES6内置对象扩展
2.1.Array的扩展方法
2.1.1.扩展运算符可以将数组或者对象转为用逗号分隔的参数序列
let ary = [1,2,3]
...ary 1,2,3
2.1.2.扩展运算符可以应用于合并数组
-- 法一:let arr1 = [1,2,3]
let arr2 = [4,5,6]
let arr3 = [...arr1,...arr2]
-- 法二:arr1.push(...arr2)
2.1.3.将类数组或遍历对象转换为真正的数组
let oDivs = document.getElementsByTagName('div')
oDivs = [...oDivs]
2.2.构造函数方法:Array.from()
2.2.1将伪数组或可遍历对象转换为真正的数组
let arrayLike = {
'0':'a',
'1':'b',
'2':'c',
length:3
}
转化成数组:
let arr2 = Array.from(arrayLike)
['a','b','c']
2.2.2.方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组
let arrayLike = {
'0':1,
'1':2,
'length':2
}
let newArr = Array.from(arrayLike,item => item * 2) [2,4]
注意“如果是对象,那么属性需要些对应的索引
3.Array实例方法
3.1.findIndex()
-- 找到第一个符合条件的数组成员的位置,如果没有找到就返回-1
let ary = [1,5,10,15]
let index = ary.findIndex((value,index) => value > 9)
console.log(index) //2
3.2.includes()
-- 判断某个数组是否包含给定的值,返回布尔值
[1,2,3].includes(2) true
[1,2,3].includes(4) false