JS数组方法整理

214 阅读3分钟

JS数组方法

在实际开发中熟悉js的数组方法可以方便我们快速开发。然而由于方法比较多,难免会有忘记一些方法。这时我们又不得已再百度一下,或者翻翻资料。

所以决定整理一下常用的数组方法,一方面巩固一下记忆,一方面方便以后忘记可以快速查找。

操作数组

  • Array.prototype.map()
    此方法创建一个新数组,其结果是该数组中的每一个元素调用一次提供的函数后的返回值。不改变原来的数组,返回新数组

  • Array.prototype.forEach()
    此方法给每个元素执行一次给定的函数,与map()或者reduce()不同的是。它总是返回undefined不会改变原数组,但可那个对象(调用它的数组)可能会被callback函数改变,无法终止或跳出循环

  • Array.prototype.filter()
    此方法创建一个数组,其包含通过所提供函数实现的测试的所有元素。不改变原来的数组,返回新数组

  • Array.prototype.every()
    此方法dui 所有元素进行判断返回一个布尔值,全部元素满足判断条件,则返回true,否则返回false。不改变原数组,返回布尔值。注意:若收到一个空数组,此方法在任何情况下都会返回true

  • Array.prototype.some()
    此方法将所有元素进行判断返回一个布尔值,有一个元素满足条件,则返回true,全部不满足返回false。不改变原数组,返回布尔值。注意:如果收到一个空数组,此方法在任何情况下都会返回false

  • Array.prototype.reduce()
    此方法是所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型。不改变原数组

  • Array.prototype.push()
    此方法是在数组后面添加新元素。改变原数组,返回数组长度。

  • Array.prototype.pop()
    该方法移除数组最后一个元素。改变原数组,返回原来的元素。

  • Array.prototype.shift()
    此方法移除数组第一个元素。改变原数组,返回移除的元素。

  • Array.prototype.unshift()
    此方法是将一个或多个元素添加到数组的开头。改变原数组,返回数组长度。

  • Array.isArray()
    判断一个对象是不是数组。返回布尔值。

  • Array.prototype.concat()
    此方法是一个拼接两个数组。不会改变原数组。返回新数组,其值为拼接好的值

  • Array.prototype.toString()
    返回一个字符串,表示指定的数组及其元素

  • Array.prototype.join()
    将数组转化为字符串,该方法可以传入分隔器作为元素之间的分隔。返回一个所有数组元素连接的字符串,如果arr.length为0,则返回空字符串

  • Array.prototype.splice(开始位置,删除个数,元素)
    此方法通过删除或替换现有元素或者原地添加新的元素来修改数组。改变原数组,返回一个以修改内容为元素的数组

  • Array.prototype.slice()
    可以用来从数组中提取元素,参数 (截取开始位置的索引,截取结束位置的索引)。不会改变原数组,返回一个含有被提取元素的新数组

  • Array.prototype.reverse()
    数组元素翻转。改变原数组

  • Array.prototype.sort()
    此方法用原地算法对数组的元素进行排序,并返回数组。默认排序是将元素转为字符串,然后在比较他们的UTF-16代码单元值序列。无法保证排序的时间和空间复杂性。返回排序后的数组。注意,数组已原地排序,并且不进行复制。 可接受一个比较函数(compareFunction(a,b))作为比较逻辑。比较逻辑如下:

    • 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前。
    • 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。
    • 如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
    • compareFunction(a, b) 必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。