工作中难免会遇到各种各样的数据结构,较为全面的了解数组操作,对于复杂数据结构的处理会非常有用且节省时间
所以想在这里总结一下工作中常用的数组操作,都是一些非常基础的知识,大家看个乐就好~
目录
工作中常用的数组方法
push()
- 向数组的末尾添加一个或多个元素,并返回新的长度。pop()
- 删除数组的最后一个元素并返回该元素。shift()
- 删除数组的第一个元素并返回该元素,数组中的其他元素向前移动。unshift()
- 向数组的开头添加一个或多个元素,并返回新的长度。slice()
- 返回数组的一个片段或子数组。splice()
- 用于插入、删除或替换数组的元素。map()
- 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。filter()
- 创建一个新数组,包含通过所提供函数实现的测试的所有元素。reduce()
- 对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。forEach()
- 对数组的每个元素执行一次提供的函数。find()
- 返回数组中满足提供的测试函数的第一个元素的值,否则返回undefined
。findIndex()
- 返回数组中满足提供的测试函数的第一个元素的索引,否则返回-1
。sort()
- 对数组的元素进行排序,并返回数组。reverse()
- 颠倒数组中元素的顺序。concat()
- 用于合并两个或多个数组。join()
- 把数组的所有元素放入一个字符串。includes()
- 判断一个数组是否包含一个指定的值,根据情况返回 true 或 false。some()
- 测试数组中是不是至少有一个元素通过了被提供的函数测试。every()
- 测试一个数组内的所有元素是否都能通过某个指定函数的测试。
常见数组方法中的用法、以及坑
slice()
和 splice()
方法之间有什么区别
slice()
方法返回数组的一个副本,从开始到结束(不包括结束),不改变原数组。splice()
方法通过删除或替换现有元素或添加新元素来修改数组,并返回被修改的元素数组。在需要同时对数组进行元素的删除和添加操作时非常有用。
如何合并两个数组
- 可以使用
concat()
方法或者展开运算符(...
)。例如,arr1.concat(arr2)
或[...arr1, ...arr2]
。 concat()
:用于合并多个数组成一个新数组,常用于不改变原数组的情况下创建新的数组集合。
slice()
、concat()
、[...arr]
方法返回的数组是浅拷贝还是深拷贝
使用slice()
、concat()
、[...arr]
是浅拷贝操作。浅拷贝是指只复制对象的第一层属性,如果属性是引用类型,复制的是引用。
如何有效地搜索数组中的元素
- 使用
indexOf()
或includes()
来检查元素是否存在。 - 使用
find()
或findIndex()
来查找符合条件的元素或其索引。 - 这些方法都会在找到符合条件的第一个元素后停止搜索。
如何使用reduce()
方法
reduce()
方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。- 例如,计算数组所有值的总和:
array.reduce((acc, val) => acc + val, 0)
。
sort()
方法是否可以对纯数字数组进行正确的排序
sort()
方法可以用来按数字大小排序数组中的数字。- 在JavaScript中,如果直接使用
sort()
方法而不提供比较函数,它默认会将数组元素转换成字符串,然后按照字符串的Unicode
字典顺序进行排序。 - 这种默认行为对于数字排序通常是不正确的,特别是当数字的位数不一致时。
<