// rest参数 (将多余的参数放进数组中,一般用于函数中的参数)
function fun(...args){
console.log(args) // [1,2,3]
}
fun(1,2,3)
// ... 扩展运算符(rest参数的逆运算,将一个数组转为用逗号分割的参数序列)
let [a,...b]=[1,2,3]
console.log(a,b) // 1,[2,3] ... 将多余的参数转为数组
// 扩展运算符
// console.log(...[1,2,3,4])
let func = (...items)=>{
console.log(items) // [7,7,8,9]
}
let arr = [7,7,8,9]
func(...arr)
// 求几个数中的最大值
console.log(Math.max(14,65,23)) // 65
console.log(Math.max(...[14,48,35])) // 48
// ES5 求最大值 (用apply将数组转为函数的参数)
// Math.max.apply(null,[1,2,3,34]) null表示this指向window
console.log(Math.max.apply(null,[1,2,3,34])) // 34
// 扩展运算符的扩展
// 一、复制数组 (浅拷贝)
const arr2 = [1,2,3]
const arr3 = [...arr2]
console.log(arr3 === arr2) // false
// 二、合并数组(浅拷贝)
let arr4 = [1,2,3]
let arr5 = [7,8,9]
arr4 = [...arr4,...arr5]
console.log(arr4,'--->arr4') // [1,2,3,7,8,9]
// 三、扩展运算符 + 解构赋值
let [x,...y] = [6,7,8,9]
console.log(x,y,'--->解构赋值') // 6,[7,8,9]
// Array.from Array.of 类数组转为数组
// find 用于找出第一个符合条件的数组成员,如果没有符合条件的成员则返回undefined
let arr6 = [1,2,3,4]
console.log(arr6.find( (i)=> i<2),'--->find') // 1 返回的是本身
// findIndex 用于第一个符合条件的数组成员的位置,如果没有则返回去 -1
let arr7 = [6,7,8,9]
console.log(arr7.findIndex( i=> i>8),'--->findIndex') // 3 返回的是索引
// includes
console.log([1,2,3].includes(4)) // false
// entries、keys、values 对数组的遍历
for( let val of ['a','b'].keys()) {
console.log(val) // 0 1 keys 对键名的遍历
}
for( let val of ['a','b'].values() ) {
console.log(val) // a b values 对键值的遍历
}
for( let val of ['a','b'].entries() ) {
console.log(val) // [0,'a'] [1,'b'] entries 对键值对的遍历
}
console