第十章 增强的数组功能
创建数组
Array.of()方法,用于创建数组,不会和 new Array()一样混乱是定义长度还是添加元素。
let a = Array.of(2)
let b = Array.of('2')
console.log(a, b) // (2,'2')
Array.from()方法,将类数组转换成数组
let c = {
add(value) {
return value + 1
},
}
function a(num1, num2) {
let b = Array.from(arguments, c.add, c)
console.log(b)
}
a(2, 3) // [3, 4]
数组去重
function test() {
return Array.from(new Set(...arguments))
}
const s = test([1, '2', 3, 3, '2'])
console.log(s) // [1,"2",3]
数组上的新方法
find() 寻找符合搜索规则的元素,返回它并停止搜索,该方法接受两个参数,一个是回调函数,第二个是 this 值(可选)。
回调函数可以接受 3 个参数,分别是数组的某个元组,该元素的索引位置,和数组自身,当满足规则条件时,回调函数应该返回 true。
let numbers = [25, 30, 35, 40, 45]
console.log(numbers.find((n) => n > 20)) // 25
findIndex() 与 find()相似,但返回的时下标。
let numbers = [25, 30, 35, 40, 45]
console.log(numbers.findIndex((n) => n > 20)) // 0
fill() 用特定值填充数组 fill(特定值,开始位置,结束位置(不包括))。
let numbers = [25, 30, 35, 40, 45]
console.log(numbers.fill(520, 2, 4)) // [25, 30, 520, 520, 45]
copyWithin(开始替换位置,替换内容位置,结束位置(不包括))。
let numbers = [25, 30, 35, 40, 45, 50, 20, 60]
console.log(numbers.copyWithin(3, 2, 6)) // [25, 30, 35, 35, 40, 45, 50, 60]