数组的方法一

什么是数组?

数组也是对象,由中括号包裹,索引从零开始递增,有length属性存储数组的长度

ary[0] 获取第一项

ary[aru.length-1]获取最后一项

数组可以有多维数组

var ary=[
 {name:'a'},
 {name:'b'}
]

数组的常用方法:

push:向数组末尾添加,参数一个或多个,返回新增后的数组长度,原数组改变
pop:删除 数组末尾一项,无参数,返回删除的项,原数组改变

shift:删除 数组第一项,无参数,返回删除的项,原数组改变( 基于shift删除数组第一项,原有后面每一项索引都要向前 提一位(减一位),如果数组很长,消耗就比较大)

unshift:向数组开头添加,参数一个或者多个,返回新增数组的长度,原数组改变

reverse:把数组倒过来,无参数,返回倒过来的新数组,原数组改变

sort:排序(正序/倒序),无参数/函数,返回拼接后的新数组,原数组改变

sort在不传递参数的情况下,只能处理10以内的数字,真实项目中sort排序都需要传递参数

var  ary = [20,5,45,100,89,3];

ary.sort(function (a,b){

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

splice:增删改数组

 

splice增删改 详解
删除

从索引n删除m个,从索引n删除到末尾

删除部分以新数组返回 改变
新增 从索引n处删除0项,把x或更多内容插入到索引n的前面 删除部分以新数组返回,如果是0项,返回的是空数组 改变
修改 从索引n删除m个,把x或更多内容替换删除内容 删除部分以新数组返回 改变

需求扩展:

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

   1) pop()

   2) splice(ary.length-1)

   3) ary.length--

   4) delete ary[ary.length-1] 不建议使用

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

   1) push(x,y,z)

   2)splice(ary.length,0,x)

   3) ary [ary.length]=x

slice:按照条件查找内容

方法名 作用 参数 返回值 原数组是否改变
slice 按照条件查找内容 从索引n找到索引m,不包含m 把查找到的内容以新数组返回 不变
    0和没有参数 可以实现数组克隆 浅克隆数组 不变
    -3,-1倒数第3个到倒数第1个,不包含倒数第1个 把查找的内容以数组返回 不变

 

concat:拼接数组,要拼接的数组,返回拼接后的新数组,原数组不变,可基于空数组为拼接的开始,在参数中排列拼接的顺序,空数组不占位置

toString:数组转换为字符串,无参数,返回用逗号返回的字符串,原数组不变

join:数组转换为字符串,可以设置连接符,参数是指定的连接符,返回字符串,原数组不变

数组求和:

基于join使用+号作为分隔符,先把数组变成每一项相加的字符串,基于eval把字符串变成js表达式执行,得到的结果就是数组中每一项累加的和

eval(ary.join('+'))

 indexOf / lastIndexOf :检测当前值在数组中第一次/ 最后一次出现的索引位置,参数 为要检测的值,返回索引(-1代表没有),原数组不变

真实项目中为了验证是否包含某一项

var ary = [2,5,6,84];
if(ary.indexOf(100)>-1){
  //ary中包含100这一项
}

以上只是数组一部分方法,控制台输入 Array.prototype还会有很多数组的方法没有详细说,由浅至深,下一篇再整理其他的数组方法吧!

 

posted @ 2019-08-28 21:12  欣欣向荣998  阅读(277)  评论(0)    收藏  举报