es6中数组扩展的常用方法如下:
- from() 将伪数组转换成真正的数组
- of() 将任意的数据类型,转换成数组
- copywithin() 将数组内部指定位置的元素,复制到其他位置,返回当前位置
- find()查找元素 findIndex()查找index
- entries() keys() values() 返回一个遍历器,可以使用for…of 进行遍历
- includes() 返回boolean值,表示某个数组是否包含给定的值
//1.from() 将伪数组转换成真正的数组
function add(){
console.log(arguments)
// es5中方法
// let arr = [].slice.call(arguments)
// console.log(arr)
//es6方法
let arr = Array.from(arguments)
console.log(arr)
}
add(1,2,3)
//from 还可以接受第二个参数,用来对每个元素进行处理
let lis = document.querySelectorAll('li')
console.log(lis)
let li = Array.from(lis,ele => '获取的值:' + ele.textContent)
console.log(li)
//2.of() 将任意的数据类型,转换成数组
console.log(Array.of(2,3,6,'30'))
//3.copywithin() 将数组内部指定位置的元素,复制到其他位置,返回当前位置
//从index为2的数开始(包含index为2的数据)往后的所有数据,替换从index为0位置往后的数据
console.log([1,3,4,5,6,7].copyWithin(0,2))
//4.find()查找元素 findIndex()查找index
//find()找出第一个符合条件的数组成员
//findIndex() 找出第一个符合条件的数组成员的索引
let num = [1,2,-10,-20,9,2].find(item => item < 0)
console.log(num)
//5.entries() keys() values() 返回一个遍历器,可以使用for....of 进行遍历
//keys()是对键值进行遍历
for (const index of ['a','b'].keys()) {
console.log(index)
}
//values()是对值进行遍历
for (const val of ['a','b'].values()) {
console.log(val)
}
//entries()是对键值对进行遍历
for (const [index,val] of ['a','b'].entries()) {
console.log(index,val)
}
//6.includes() 返回boolean值,表示某个数组是否包含给定的值
console.log([1,2,3].includes(2)) //返回 true
console.log([1,2,3].includes(4)) //返回 false
//之前使用indexOf()
console.log([1,2,3].indexOf(2))//返回 1 包含,返回-1不包含