Array-apis(1-10)

144 阅读3分钟

(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]]