ES6第十章 增强的数组功能
- 使用Array.of()方法创建数组
let items = Array.of(1, 2)
console.log(items[0]) //1
console.log(items[1]) //2
2. 使用Array.from()方法将不是数组的对象转为数组
//example1 1,2,3,4转换为数组[1, 2, 3, 4]
function translate() {
return Array.from(arguments)
}
let array1 = translate(1,2,3,4)
console.log(array1) //[1, 2, 3, 4]
//example2 转换为数组且对各项做+1操作
function translate() {
return Array.from(arguments, (value) => value + 1)
}
let array1 = translate(1,2,3,4)
console.log(array1) //[2, 3, 4, 5]
//example3 指定使用某个对象的某个方法对数组进行处理
let help = {
mid: 1,
add(value) {
return value + this.mid
}
}
function translate() {
//第二个参数实质就是一个方法,当执行到this的时候会发生指向不明,所以第三个参数表示this指向help
return Array.from(arguments, help.add, help)
}
let array1 = translate(1,2,3,4)
console.log(array1) //[2, 3, 4, 5]
3. find与findIndex函数 (找符合某个条件的元素和那个元素的索引位置)
let numbers = [1, 3, 44, 22]
console.log(numbers.find(n => n > 33 ) //44
console.log(numbers.findIndex(n => n > 33 ) //44
4. fill函数 (替换元素)
let numbers = [1, 2, 3, 4]
//该函数支持三个参数,第一个参数是用什么元素替换,第二个参数是替换的开始位置(默认不传为0),第三个参数是替换的结束位置(默认不传为末尾位置)
numbers.fill(1)
console.log(numbers) //[1, 1, 1, 1]
numbers.fill(1,2) //[1, 2, 1, 1]
numbers.fill(1,2,3) //[1, 2, 1, 1]
5. copyWithin()方法 (复制元素)
let numbers = [1, 2, 3, 4]
//该函数支持三个参数的传入,第一个参数是复制元素的其实位置,第二个参数是从什么位置开始复制元素,第三个参数是指遇到索引为那个位置就停止复制
numbers.copyWith(2, 0, 1) // [1, 2, 1, 4]
//2表示从索引为2的位置开始复制,即3的位置
//0表示复制的起始位置是索引为0的位置,即3的位置将由1代替
//1表示遇到索引是1就停止,所以4的位置没有变化
numbers.copyWith(2, 0) // [1, 2, 1, 2]
6. array数组对应的方法总结
- copyWith() 复制元素
- entries()
- fill() 替换元素
- filter() 条件过滤
- find() 查找符合条件的元素
- findIndex() 查找符合条件的元素的索引位置
- forEach() 遍历数组
- indexOf()
- join()
- keys()
- lastIndexOf()
- map()
- reduce()
- reduceRight()
- reverse()