javascript数组常用函数与实战总结
函数介绍
向数组末尾添加值
push
说明:向数组的末尾添加一个或多个元素,并返回新的长度 代码:
1 | let array=[11,22]; |
向数组头部添加值
unshift
说明:将参数添加到原数组开头,并返回数组的长度 代码:
1 | let array=[11,22]; |
删除数组元素
splice
说明: 当splice传递两个参数的时候,参数1:开始删除的下标位置,参数2:删除数组元素的个数,返回新的数组。当splice传递三个参数的时候,参数1:开始删除的下表位置,参数2:删除数组元素的个数,参数3:向数组添加的新元素。注意数组下标0开始。代码:
1 | let array=[11,22,33,44]; |
获取数组的最后一个元素
常规获取元素最后一个值
1 | let array=['1','2','3','312哦哦']; |
pop 也可以说是删除数组的最后一个元素,与删除数组的第一个元素shift用法基本相同
说明:注意使用pop获取数组最后一个元素的时候,同时会删除掉数组的最后一个元素;使用shift获取数组最后一个元素的时候,同时会删除掉数组的最后一个元素,二者都是返回的那个元素的值,原始数组也发生变化。
1 | let array=['1','2','3','312哦哦']; |
Lodash中的函数_last
说明:不会改变原始数组
1 | let array=['1','2','3','312哦哦']; |
颠倒数组元素(数组的反转)
数组传统方法 reverse
说明:颠倒数组元素后返回新的数组
代码:
1 | let array=[11,22]; |
lodash提供的函数 _.reverse
代码:
1 | let array=[11,22]; |
分隔数组放入字符串
join
说明:用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。返回一个字符串 代码:
1 | let array=[11,22]; |
连接两个或多个数组
contact
说明:用于连接两个或多个数组,并返回一个新数组,新数组是将参数添加到原数组中构成
1 | let array=[11,22]; |
数组元素的去重
数组元素的去重之前有专门讲过一些列的方法,这边就不过多陈述了。说一下lodash提供的函数 _uniq
代码:
1 | let array=['数字','花朵','数字','地球','人类','头发','眼睛','细胞']; |
数组求和
lodash中的函数 _sum
代码:
1 | let sorce=_.sum([32,45,86,43]); |
获取数组中指定键值对的值组成数组
lodash中的函数 _map
说明:例如这样一个包含对象的数组[{id:1,name:’koala’},{id:2,name:’koala1’}],想拿到数组对象中id的数据组成一个数组。map的参数1:原型数组,参数2对象中的某一个键值对
代码:
1 | let array=[{id:1,name:'koala'},{id:2,name:'koala1'}]; |
获取数组中某个值的角标
注意:下面两个函数都是返回遇到的第一个符合的值的下标值。indexOf
说明:
- 用于在字符串和数组中找到目标的索引
- 在字符串中使用的话会转换类型为 “hello1”.indexOf(1) //结果5
- 在数组中使用不会转换类型 [1,2,3,”4”].indexOf(4) //-1
- [,,,,,].indexOf(undefined) //-1
- [null,undefined,NaN].indexOf(NaN)] //-1 NaN是找不到的其他可以哟
- let num = 2019; (“”+num).indexOf(0) //1
代码:
1 | console.log('哈哈',("hello1".indexOf(1)))// 哈哈 5 |
lodash中的函数_.findIndex 说明:对于一个数组,里面每个值是对象的时候,这个函数,可以不完全判断对象一定是相同的。 代码:
1 | var users = [ |
数组包含值判断
indexOf
说明:返回对应元素下标,在上面已经详细介绍过。
includes
说明:返回的直接是true/false,同时对NaN找不到的问题也得到解决。效率应该会比indexOf高一些
代码:
1 | let array111=['dabao','dabao1',NaN]; |
把一个字符串分割成字符串数组
split
说明:split函数两个参数,参数1:字符串或正则表达式,从该参数指定的地方分割 (必须),参数2:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度
1 | var str="How are you doing today?" |
一道面试题:
给定任意非负整数,反复累加各位数字直到结果为个位数为止。例如给定非负整数912,第一次累加9+1+2 = 12, 第二次累加1+2 = 3, 3为个位数,循 环终止返回3。请编程实现。
1 | function add(num){ |