数组操作方法

常用的数组方法

1、concat()方法用于合并两个或多个数组。返回一个新数组。(不改变原数组)

2、find()方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。(不改变原数组)

3、findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。(不改变原数组)

4、indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。(通常用它判断数组中有没有这个元素)(不改变原数组)

5、includes()方法用来判断一个数组是否包含一个指定的值,根据情况返回一个布尔值,如果包含则返回 true,否则返回false(不改变原数组)

6、join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。(不改变原数组)

7、toString()方法可将结果转换为字符串,并返回。(不改变原数组)

8、sort()方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。(改变原数组)

9、pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。(改变原数组)

10、shift()方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。(改变原数组)

11、push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。(改变原数组)

12、unshift( )方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。(改变原数组)

13、splice( )方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。如果没有删除元素,就返回一个空数组。若只添加不删除,参数 1 就为添加元素的起始下标(参数 1,从下标 x 开始包含;参数 2,删除 x 个;参数 3,要添加的元素)。(改变原数组)

14、slice( )方法选取数组的一部分截取,并返回一个新数组。(参数 1,从下标 x 开始包含;参数 2,截取到下标 x 结束不包含)(不改变原数组)

15、reverse( )方法将数组中元素的位置颠倒,并返回该数组。(改变原数组)

16、sort( )方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列时构建的。(改变原数组)

17、reduce( )方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。(不改变原数组) (reduce 是个强大的方法,可以做的事情有很多,且性能并不差 ,但是常常被忽略了,稍稍列举一下 reduce 方法可以干的事儿:累加累乘,权重求和,代替 reverse,代替 map 和 filter,代替 some 和 every,数组分割,数组过滤,数组填充,数组扁平,数组去重,数组最大最小值,数组成员独立拆解,数组成员个数统计,数组成员位置记录,数组成员特性分组,数组成员所含关键字统计,字符串翻转,数字千分化,异步累计,斐波那契数列,URL 参数反序列化,URL 参数序列化,返回对象指定键值,数组转对象...具体操作百度)

数组有哪几种循环方式?分别有什么作用?

1、every()方法:测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。

2、some()方法:测试是否至少有一个元素可以通过某个指定函数的测试。它返回一个布尔值。

3、filter()方法:返回一个新数组, 其包含通过指定函数测试的所有元素,起到过滤作用。

4、forEach()方法:对数组的每个元素进行数据的处理(引用数据类型)。(该方法没有无法停止遍历,使用 try catch 内部抛出错误,catch 捕获错误可以终止遍历,目前没有使们大可以用其他方法代替,every ,some 等。)

5、map()映射一般用于返回一个处理后的新数组 (本身不会改变原数组,return 之可以更改数组中的引用数据类型的值)

数组去重复

1、set 去重

1
2
3
let num = [...new Set(arr)]
console.log(num) //[1,2,3,4]
// 利用set去重,拓展运算符转换为真数组
2、reduce 去重
1
2
3
4
5
6
let num = arr.reduce((num, ele) => {
!num.includes(ele) && num.push(ele)
return num
}, [])
console.log(num) //[1,2,3,4]
// 逻辑与短路运算,一假则假(左边为 true,执行右边的代码)
3、filter 去重
1
2
3
4
5
6
  function num(res) {
return res.filter((item,index) => {
return res.indexOf(item) === index
})
}
console.log(num(arr)) //[1,2,3,4]
4、forEach遍历 + includes(是否为true)/indexOf(是否不为-1)/findIndex(是否不为-1)
1
2
3
4
5
6
7
8
9
10
 function num(add) {
let res = []
add.forEach(ele => {
if (!res.includes(ele)) {
res.push(ele)
}
})
return res
}
console.log(num(arr)) //[1,2,3,4]

数组操作方法
http://example.com/2023/02/17/数组操作方法/
作者
dinghw
发布于
2023年2月17日
许可协议