行业知识
js 常用函数 push()、pop()、shift()、unshift()、slice()、splice() 等
文章目录
- 1. join() 函数
- 2.push() 函数
- 3. pop() 函数
- 4.shift() 函数
- 5.unshift() 函数
- 6.sort() 函数
- 7. reverse() 函数
- 8. concat() 函数
- 9.slice() 函数
- 10. splice() 函数
- 11. indexOf() & lastIndexOf() 函数
最近对前端一些函数的用法还不是很熟悉,有一些函数容易混淆,在此总结一下,同时分享给各位小伙伴:
1. join() 函数
join() 将数组中元素 组成字符串 ,需要传个参数作为连接符,不传的话默认就是逗号。
2.push() 函数
在数组 尾部逐个添加 元素,返回结果数组的长度,能接收任意数量参数,push() 修改了原数组。
3. pop() 函数
pop() 移除数组最后一项,返回的是被移除项。修改原数组
4.shift() 函数
shift() 删除数组的第一项元素,返回被删除的元素, 修改原数组
5.unshift() 函数
向数组的头部添加元素,返回的是结果数组的长度,修改原数组
6.sort() 函数
将数组按照从小到大的顺序排列, 修改原数组 。
注意:
sort()方法是用于数组排序的,语法如下:array.sort(),
使用sort()方法后会改变原数组的顺序(而不是生成一个新数组,同时原数组保持不变)
示例一:对字符数组进行排序
var myarr1=["h","e","l","l","o"]; myarr1.sort(); console.log(myarr1);//(5) ['e', 'h', 'l', 'l', 'o']
- sort中没有参数时,会按照数组元素对应的ASCII码进行比较和排序
示例二:对数字数组进行排序
var myarr2=[9,5,1,4,6]; myarr2.sort(); console.log(myarr2);//(5) [1, 4, 5, 6, 9]
ort()无法对由两位数以上的数组元素构成的数组进行合理排序
示例
var myarr2=[10,25,3,8]; myarr2.sort(); console.log(myarr2);//10 25 3 8
出现原因和解决方法
因为sort()方法会首先会调用每个数组数据项的toString()方法,
转换成字符串以后再进行比较,在字符串中"25" if(xage:10,name:'Tom'}, {age:8,name:'Jack'}, {age:20,name:'Michel'}, {age:12,name:'Daniel'}, ]; if (obj1.age
效果:
{age: 8, name: 'Jack'}{age: 10, name: 'Tom'}{age: 12, name: 'Daniel'}{age: 20, name: 'Michel'}7. reverse() 函数
数组反转。
8. concat() 函数
在不影响原数组的情况下,复制了一个数组,将参数添加到副本的尾部,因此若没有传参,就相当于复制了原数组。
9.slice() 函数
slice() 不影响原数组 ,返回原数组指定开始位置 - 结束位置的新数组。 这个位置是数组的下标,当然是从0开始计算,如果只有一个参数,那就是默认第二个参数到尾部。
demo中可以看出,返回的新数组是 不包含 结束位置的那个元素。
如果不传第二个参数,默认返回到最后,也 不包含 最后一个的哦。 参数是 负数,相当于反着来,这时候就是包含了结束位置, 不包含 开始位置的元素。
10. splice() 函数
删除任意项元素,需要两个参数:要删除的位置 和 要删除的数量。
demo中看出,splice()返回被删除的元素数组,原数组被修改了。
插入任意项元素,需要三个参数:要删除的位置,一个不删 和 要插入的元素。
事实证明,是在要插入位置 之前 插入的。
替换,其实就是在指定位置删除任意项元素,再插入任意项元素。
11. indexOf() & lastIndexOf() 函数
查找参数元素在数组中的 位置 ,找不到就返回 -1 。那必传参数一定是目标元素咯,还有个可选参数就是要开始查找的起点位置。 indexOf() 从头到尾找,lastIndexOf() 从尾到头找。
- sort中没有参数时,会按照数组元素对应的ASCII码进行比较和排序