废话不说,先贴上Array prototype上所有方法,接下来一一开始梳理。
1,at() 方法用于接收一个整数值并返回该索引对应的元素,允许正数和负数。负整数从数组中的最后一个元素开始倒数。匹配给定索引的数组中的元素。如果找不到指定的索引,则返回 undefined。在传递非负数时,at() 方法等价于括号表示法。例如,array[0] 和 array.at(0) 均返回第一个元素。但是,当你需要从数组的末端开始倒数时,则不能使用 array[-1],因为方括号内的所有值都会被视为字符串属性,因此你最终读取的是 array[-1],这只是一个普通的字符串属性而不是数组索引。通常的做法是访问 length 并将其减去从末端开始的相对索引。例如,array[array.length - 1]。at() 方法允许使用相对索引,因此上面的示例可以简化为 array.at(-1)。更正式地,当 index < 0 时,该方法将访问索引 index + array.length。
2,concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而是返回一个新的数组。

3,constructor 返回创建数组对象的原型函数。静态方法有:
Array.from()通过给定的对象中创建一个数组。
Array.of()将一组值转换为数组。
Array.isArray()判断对象是否为数组。
Array.fromAsync()是Array.from()的异步版本。Array.fromAsync() 可以处理异步可迭代对象。返回一个会兑现为数组实例的 Promise。
Array.fromAsync() 和 Promise.all() 都可以将一个 promise 可迭代对象转换为一个数组的 promise。然而,它们有两个关键区别:Array.fromAsync() 会依次等待对象中产生的每个值兑现。Promise.all() 会并行等待所有值兑现。Array.fromAsync() 惰性迭代可迭代对象,并且不会获取下一个值,直到当前值被兑现。Promise.all() 预先获取所有值并等待它们全部兑现。
Array.fromAsync()方法参考示例:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/fromAsync
4,copyWithin() 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中,并返回它,不会改变原数组的长度。
5,entries() 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。
keys() 方法返回一个新的数组迭代器对象,其中包含数组中每个索引的键。
values() 方法返回一个新的数组迭代器对象,该对象迭代数组中每个元素的值。
6,every() 方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。
some() 方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。
7,fill() 方法用一个固定值填充一个数组中从起始索引(默认为 0)到终止索引(默认为 array.length)内的全部元素。它返回修改后的数组。
8,filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。不会对空数组进行检测。不会改变原始数组。
9,find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。find() 方法为数组中的每个元素都调用一次函数执行,当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined。对于空数组,函数是不会执行的。没有改变数组的原始值。
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。findIndex() 方法为数组中的每个元素都调用一次函数执行,当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1,对于空数组,函数是不会执行的。没有改变数组的原始值。
findLast() 方法反向迭代数组,并返回满足提供的测试函数的第一个元素的值。如果没有找到对应元素,则返回 undefined。
findLastIndex() 方法反向迭代数组,并返回满足所提供的测试函数的第一个元素的索引。若没有找到对应元素,则返回 -1。
10,flat() 方法方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。返回一个包含将数组与子数组中所有元素的新数组。会递归地遍历数组,将所有嵌套的数组元素提取出来,生成一个新的一维数组。
flatMap() 方法对数组中的每个元素应用给定的回调函数,然后将结果展开一级,返回一个新数组。它等价于在调用 map() 方法后再调用深度为 1 的 flat() 方法(arr.map(...args).flat()),但比分别调用这两个方法稍微更高效一些。
11,forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。对于空数组是不会执行回调函数的。没有返回值,类似于 for 循环。
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。按照原始数组元素顺序依次处理元素。不会对空数组进行检测。不会改变原始数组。
未完待续。。。