(1) at()
at() 方法接收一个整数值并返回该索引的项目,允许正数和负数。就是根据索引获取数组项目。
示例:
const a = ['a' , 'b', 'c']
a.at(1) // "b"
a.at(-1) // 'c'
(2) concat()
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
语法:
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
参数:
| 参数 | 说明 |
|---|---|
| valueN | 可选。数组或者值,将被合并到一个新数组中 |
示例:
const a1 = [1,2,3]
const a2 = [4,5,6]
const a3 = a1.concat(a2) // [1, 2, 3, 4, 5, 6]
const a4 = [99].concat(a1,a2) // [99, 1, 2, 3, 4, 5, 6]
const a5 = [66].concat(a1,a2,'xx') // [66, 1, 2, 3, 4, 5, 6, 'xx']
(3) copyWith()
copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。(就是把当前数组中的某一段拿出来,填充到当前数组的另一个位置。当前数组会被更改)
语法:
arr.copyWithin(target[, start[, end]])
参数:
| 参数 | 说明 |
|---|---|
| target | 被替换的位置 |
| start | 开始截取的位置。不写则从0开始 |
| start | 结束截取的位置。不写则从末尾开始,默认是数组的长度 |
示例:
const arr = ['a', 'b', 'c', 'd', 'e', 'f']
console.log(arr.copyWithin(4,1,3)) // ['a', 'b', 'c', 'd', 'b', 'c']——把索引1-3('b','c')的俩个元素插入到索引为4的位置。
console.log(arr.copyWithin(4)) // ['a', 'b', 'c', 'd', 'a', 'b']
console.log(arr.copyWithin(4,3)) // ['a', 'b', 'c', 'd', 'd', 'e']
(4) entries()
entries() 方法返回一个新的Array迭代器对象。,该对象包含数组中每个索引的键/值对。有一个next()方法,可以用于遍历迭代器取得原数组的[key,value]。
示例:
var arr = ["a", "b", "c"];
var iterator = arr.entries();
console.log(iterator.next()); // {value: Array(2), done: false}
(5) every()
every()方法用于判断数组中的所有元素是否能满足某个条件。返回true或false。
示例:
const arr = [2,4,6]
arr.every((item,index,arr)=>{
// 判断所有的元素是不是都是偶数
return item%2 === 0
}) // true
(6) fill()
fill()方法用一个固定值填充一个数组中的起止与终止索引内的全部元素。
语法:
arr.fill(value[, start[, end]])
参数:
| 参数 | 说明 |
|---|---|
| value | 用来填充的元素 |
| start | 起始索引。默认从0开始 |
| start | 结束索引。默认是数组的长度 |
示例:
const arr = ['a', 'b', 'c', 'd']
arr.fill('x') // ['x', 'x', 'x', 'x']
arr.fill('x',1) // ['a', 'x', 'x', 'x']
arr.fill('x',1,2) // ['a', 'x', 'c', 'd']
(7) filter()
filter() 方法创建一个新数组,用来筛选某个数组中的所有符合某个条件的元素。
示例:
const arr = [2,4,6,8,10,12]
const newArr = arr.filter((e,i,a)=>{
return e >= 10 // 筛选所有大于10的值
}) // [10, 12]
(8) find() & findIndex()
1.find() 方法返回数组中满足提供的测试函数的第一个元素的值。没找到返回undefined。
2.findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引。没找到返回-1
示例:
const arr = [2,4,26,8,10,12]
const s = arr.find((e,i,a)=>{
return e >= 10 // 筛选所有大于10的值
}) // 26
const i = arr.findIndex((e,i,a)=>{
return e >= 10 // 筛选所有大于10的值
}) // 2
(9) flat()
flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
说明:
- 原数组不会被改变,需要用一个新值接住新数组
参数:
| 参数 | 说明 |
|---|---|
| depth | 可选。要提取的嵌套数组的深度,默认1 |
示例:
const arr1 = [1,2,[3,4]]
const newArr1.flat() // [1, 2, 3, 4]
const arr2 = [1,2,[[[[3,4]]]]] // 嵌套4曾
const newArr2 = arr2.flat(4) // [1, 2, 3, 4]
(10) flatMap()
flatMap()方法用法类似map()方法。只不过相当于在map的基础上对每个返回值执行了一次flat()方法。
示例:
const arr1 = [1,2,3,4]
// map()方法
arr1.map((e,i,a) => {
return [e*2]
}) // [[2], [4], [6], [8]]
// flatMap()方法
arr1.flatMap((e,i,a)=>{
return e * 2
}) // [2, 4, 6, 8]
arr1.flatMap((e,i,a)=>{
return [e*2]
}) // [2, 4, 6, 8]
arr1.flatMap((e,i,a)=>{
return [[e*2]]
}) // [[2], [4], [6], [8]]