随笔记录--JS数组中常用方法

数组中常用的方法

可以分为四个维度学习记忆

  • 方法的作用
  • 方法的参数
  • 方法的返回值
  • 原有数组是否改变

push

作用:向数组”末尾“添加新的内容。
参数:追加的内容可以是一个或者是多个。
返回值:新增数据后的长度
原有的数据发生了改变

pop

作用:删除数组最后一项
参数:不需要传递任何参数
返回值:返回被删除那一项的数值
原有的数组被改变

shift

作用:删除数组中的第一项
参数:不用传递任何参数
返回值:返回被删除的那一项的值
原有的数组被改变

基于shift删除数组中的第一项,删除后原有数组后面每一项的索引都要减1(往前移动一位)

unshift

作用:向数组开始位置追加新的内容
参数:要新增的内容
返回值:新增数组后的长度
原有的数组发生改变

splice

基于splice对数组可以进行很多操作,比如:
删除数组指定位置的内容
向数组指定位置新增内容
还可以修改数组指定位置的内容
删除:splice(n.m)
从索引n开始,删除m个内容,把删除掉的部分以新的数组返回,原有的数组被改变。

新增:ary.splice(n,0,x,...)
从索引n开始往前删除零项(没删除),或者把x的内容放入到数组中索引n位置的前面。

修改:ary.splice(n,m,x,...)
修改的原理就是把原有的内容删除掉,然后把需要修改的内容这部分被删除信息的位置。返回的是以数组的形式被修改了的内容(也就是被删掉的内容)

通过一则案例来练习一下上面数组的常用方法

案例

1. 删除数组最后一项,有几种方法?


除了上面的三种方式之外,还可以用delete删除数组中的某一项,但是不建议用delete删除,虽然把内容删除了,但是数组的长度依然没有改变。

2. 向数组末尾追加新的内容,有几种方法?

slice

作用:在一个数组中,按照条件查找出其中其部分的内容。
参数:两个参数(n, m),从索引n开始,找到m处,但是不包含m。
返回:以一个新数组存储查找的内容
原有数组不会变


如果不传递参数,可以是实现数组的克隆,克隆出一个新的数组出来,和原来数组的内容一样,但是不在相同的对空间中,两个数组是不相等的独立的。
slice还支持负数索引,负数运算规则:数组总长度+负数索引

concat

作用:实现多个数组(或者值)的拼接
参数:数组或者值
返回:拼接后的新数组
原有数组不变

var ary1 = [12,13];
var ary2 = [23,24];
var ary3 = [34,35];
console.log(ary1.concat(ary2,'Kge',ary3));
//[12, 13, 23, 24, "Kge", 34, 35]

还可以基于空数组作为拼接的开始,在小括号中排列拼接的顺序,空数组不会占据内容的位置。

[].concat(ary1,'Kge',ary3);
//[12, 13, "Kge", 34, 35]

toString

作用:把数组转换为字符串
参数:没有任何参数
返回值:数组中的每一项用逗号分隔的字符串
原有的数组不变

console.log( ary1.toString() );
//"12,13"

join

作用:和toString类似,也是把数组转换为字符串,但是我们可以设置为字符串后每一项之间的链接符
参数:指定的链接符
返回值:字符串
原有的数组不变

console.log(ary1.join('-'));
//"12-13"

sort

作用:给数组排序
参数:无/函数
返回值:排序后的新数组
原有的数组不变

var ary = [2,4,5,3,2,4,5,6,7,8,4,9];
console.log(ary.sort());
//[2, 2, 3, 4, 4, 4, 5, 5, 6, 7, 8, 9]

其中,在真实项目中,基于sort排序,我们都需要传递参数(函数)

ary.sort(function (a,b){
    return a-b;  //升序

    // return b-a;  //降序
})

猜你喜欢

转载自blog.csdn.net/qq_34207992/article/details/107683581