ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info] **[Array.from](https://www.ecma-international.org/ecma-262/6.0/#sec-array.from)** (ES6) ~~~ Array.from(arrayLike[, mapFn[, thisArg]]) ~~~ `arrayLike` 想要转换成数组的伪数组对象或可迭代对象。 `mapFn` 可选, 如果指定了该参数,新数组中的每个元素会执行该回调函数。 `thisArg` 可选参数,执行回调函数`mapFn`时`this`对象。 `返回值` 新数组实例。   *****   >[info] **[Array.isArray](https://tc39.es/ecma262/#sec-array.isarray)** (ES5) > 检测一个值是否为数组 ~~~ Array.isArray(obj) ~~~ `返回值` 布尔值。   *****   >[info] **[Array.of](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/of)** (ES6) ~~~ Array.of(element0[, element1[, ...[, elementN]]]) ~~~ `elementN` 任意个参数,将按顺序成为返回数组中的元素。 `返回值` 新的 Array 实例。   *****   >[info] **[Array.prototype.map](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map)** (ES5) > 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回   *****   >[info] **[Array.prototype.forEach](https://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18)** (ES5) > 数组循环遍历 ~~~ arr.forEach(callback(currentValue [, index [, array]])[, thisArg]) ~~~ `callback` 为数组中每个元素执行的函数,该函数接收一至三个参数: `currentValue`数组中正在处理的当前元素。 `index`可选, 数组中正在处理的当前元素的索引。 `array`可选, forEach() 方法正在操作的数组。 `thisArg`可选, 当执行回调函数`callback`时,用作`this`的值。 `返回值` undefined >[danger] **注意** > `forEach()`遍历的范围在第一次调用`callback`前就会确定。调用`forEach`后添加到数组中的项不会被`callback`访问到。 > 如果已经存在的值被改变,则传递给`callback`的值是`forEach()`遍历到他们那一刻的值。已删除的项不会被遍历到。 > 如果已访问的元素在迭代时被修改了(例如使用[`shift()`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/shift)),之后的元素将被跳过。   *****   >[info] **[Array.prototype.some()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/some)** (ES5) > 测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。 ~~~ arr.every(callback(element[, index[, array]])[, thisArg]) ~~~ `callback` 用来测试每个元素的函数,它可以接收三个参数: `element` 用于测试的当前值。 `index` 可选, 用于测试的当前值的索引。 `array` 可选, 调用`every`的当前数组。 `thisArg` 执行`callback`时使用的 `this` 值。 `返回值` 数组中有至少一个元素通过回调函数的测试就会返回`true`;所有元素都没有通过回调函数的测试返回值才会为false。   *****   >[info] **[Array.prototype.every()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/every)** (ES5) > 测试一个数组内的所有元素是否都能通过某个指定函数的测试 ~~~ arr.every(callback(element[, index[, array]])[, thisArg]) ~~~ `callback` 用来测试每个元素的函数,它可以接收三个参数: `element` 用于测试的当前值。 `index` 可选, 用于测试的当前值的索引。 `array` 可选, 调用`every`的当前数组。 `thisArg` 执行`callback`时使用的 `this` 值。 `返回值` 布尔值   *****   >[info] **[Array.prototype.includes()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)** (ES7) > 用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。 ~~~ arr.includes(valueToFind[, fromIndex]) ~~~ `valueToFind` 需要查找的元素值。 `fromIndex` 可选, 从`fromIndex`索引处开始查找`valueToFind`。如果为负值,则按升序从`array.length + fromIndex` 的索引开始搜 (即使从末尾开始往前跳`fromIndex` 的绝对值个索引,然后往后搜寻)。默认为 0。 >[danger] **注意** > 使用`includes()`比较字符串和字符时是区分大小写。   *****   >[info] **[Array.prototype.filter()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)** (ES5) > 返回一个由通过指定测试方法的所有元素组成的新数组 ~~~ var newArray = arr.filter(callback(element[, index[, array]])[, thisArg]) ~~~ `callback` 用来测试数组的每个元素的函数。返回`true`表示该元素通过测试,保留该元素,`false`则不保留。它接受以下三个参数: `element` 数组中当前正在处理的元素。 `index` 可选,正在处理的元素在数组中的索引。 `array` 可选,调用了`filter`的数组本身。 `thisArg` 可选,执行`callback`时,用于`this`的值。 `返回值` 一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。   *****   >[info]**[Array.prototype.find()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/find)** (ES6) ~~~ arr.find(callback[, thisArg]) ~~~ `callback` 在数组每一项上执行的函数,接收 3 个参数: `element` 当前遍历到的元素。 `index` 可选, 当前遍历到的索引。 `array` 可选, 数组本身。 `thisArg` 可选, 执行回调时用作`this` 的对象。 `返回值` 数组中第一个满足所提供测试函数的元素的值,否则返回 [`undefined`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/undefined)。 >[danger] **注意** 在第一次调用`callback`函数时会确定元素的索引范围,因此在`find`方法开始执行之后添加到数组的新元素将不会被`callback`函数访问到。如果数组中一个尚未被`callback`函数访问到的元素的值被`callback`函数所改变,那么当`callback`函数访问到它时,它的值是将是根据它在数组中的索引所访问到的当前值。被删除的元素仍旧会被访问到,但是其值已经是undefined了。   *****   >[info]**[ Array.prototype.flat()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/flat)** (ES2019) `flat()`方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。 ~~~ var newArray = arr.flat([depth]) ~~~ `depth`可选, 指定要提取嵌套数组的结构深度,默认值为 1。 `返回值` 一个包含将数组与子数组中所有元素的新数组。   *****   >[info] **Array.prototype.concat** > 数组连接 ~~~ var new_array = old_array.concat(value1[, value2[, ...[, valueN]]]) ~~~ `valueN` 可选, 数组和/或值,将被合并到一个新的数组中。如果省略了所有`valueN`参数,则`concat`会返回调用此方法的现存数组的一个浅拷贝。详情请参阅下文描述。 `返回值` 新的 Array 实例。   *****   >[info] **Array.prototype.pop()** > 从数组中删除最后一个元素,并返回该元素的值   *****   >[info] **Array.prototype.push()** > 将一个或多个元素添加到数组的末尾,并返回该数组的新长度   *****   >[info] **[Array.prototype.shift()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/shift)** > 从数组中删除**第一个**元素,并返回该元素的值。此方法更改数组的长度。   *****   >[info] **[Array.prototype.unshift()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/shift)** > 将一个或多个元素添加到数组的**开头**,并返回该数组的**新长度(该**方法修改原有数组**)**。   *****   >[info] **[Array.prototype.reduce()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)** > 方法对数组中的每个元素执行一个由您提供的**reducer**函数(升序执行),将其结果汇总为单个返回值。使用场景: 数组求和求积,数组扁平化等   *****   >[info] **[Array.prototype.reverse()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse)** > 将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。   *****   >[info] **[Array.prototype.slice()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)** > `slice()`方法返回一个新的数组对象,这一对象是一个由 `begin`和`end`决定的原数组的**浅拷贝**(包括`begin`,不包括`end`)。原始数组不会被改变。   *****   >[info] **[Array.prototype.sort()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)** > 排序   *****   >[info] **[Array.prototype.splice()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)** > **`splice()`**方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。 `返回值` **由被删除的元素组成的一个数组**。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。