常用的数组方法
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)
|
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))
|
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))
|