javascript常用数组使用方法分类

     与其他语言数组的差异 

 相对其他语言数组的严格性,javascript的数组就显得有点不正经了。比如:

1:数组里存放的数据不一定是同一类型的数据,想存什么就存什么:

let arr1=[1,"23",undefined,true,{name:"迪丽热巴"},function(){ return  true}]

 2: 数组的length属性会动态调整,访问数组索引不存在的不会报错:而是返回undefiend(由此下个结论,数组是对象:访问不存在的对象会返回undefined)

let arr2=[1,2,3]
console.log("访问不存在的索引",arr2[3])

 3:扩展数组的length属性增加数组的长度,拓展的数组元素都是undefined

常见的数组操作方法

第一类:前尾增/删

push():末尾添加

pop():数组末尾删除

unshift():数组开头添加

shift():数组开头删除

这里有个性能提升tip:

​ push和pop只会影响最后面的元素,而shift和unshift会一个元素之后的索引都要调整,非特殊情况不建议使用。

第二类:遍历数组,也叫数组迭代

1.forEach(item, index, arr ) 本质与for循环一样的。

​ item : 必需。当前元素

​ index:可选。当前元素的索引值。

​ arr:可选。当前元素所属的数组对象。

2.every():对数组的每一项运行给定函数,如果该函数对每一项都返回true,则结果返回true。

3.some():对数组的每一项运行给定函数,如果该函数只要有一个都返回true,则结果返回true。

4.filter():对数组的每一项运行给定函数.返回该函数会返回true的结果组成的数组。

let arr10=[1,2,3,5,6,3,2,4,1]
 let arr10Filter=arr10.filter((item,index,arr)=>{
     return (item>2)
 })
console.log(arr10Filter);   输出:  [3,5,6,3,4]

5.map():对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组。 此方法会映射出一个新的数组,与之前数组没有半毛钱关系了。

let arr11=[1,2,3,4,5,6,7,88,90]
let arr11Map=arr11.map((item,index,arr)=>{
return item*3
})
console.log(arr11Map);  输出:  [3,6,9,12,15,18,21,264,270]

第三类:位置方法(返回的对应索引且只返回第一个找到的索引,找不到则返回-1)

1:indexOf():从前往后寻找

let arr12=[11,1,2,4,5,6,7,4]
  let isExist= arr12.indexOf(4)
console.log(isExist)    输出:3

2:lastIndexOf():从后往前寻找

let arr13=[11,1,2,4,5,6,7,4]
  let isExist= arr13.lastIndexOf(4)
  console.log(isExist)  输出:7

第四类方法:重排序

1:reverse() 翻转(不是排序,最后的放在最前面,以数组的(length-1)/2索引为中心轴翻转)

let arr14=[2,3,1,45,5]
arr14.reverse()
console.log(arr14) 输出:   [5, 45, 1, 3, 2]

2.sort() 排序

let arr15=[0,1,20,4,5,10,15]
升序,从小到大
arr15.sort((a,b)=>{
        return a-b         如果是降序:这里变为b-a
    }
)
console.log(arr15) 输出:[0, 1, 4, 5, 10, 15, 20]

第五类:操作方法

1.concat() 方法可以基于当前数组中的所有项创建一个新数组。最后返回新构建的数组。在没有给concat() 方法传递参数的情况下,它只是复制当前数组并返回副本。

var arr16 = ['apple','banana','orange']
var arr17 = arr16.concat('lalala',['1111','2222'])
console.log(arr16);
console.log(arr17);

// 结果
// ['apple', 'banana', 'orange']
// ['apple', 'banana', 'orange', 'lalala', '1111', '2222']

2.slice() 截取方法,他能够基于当前数组中的一项或者多个项创建一个新数组。在只有一个参数的情况下,slice() 方法返回从该参数指定位置开始到数组末尾的所有项。如果两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项。

注意:slice()不会影响原数组。

var arr18 = ['a','b','c','d','e']
var arr19 = arr18.slice(2)
var arr20 = arr18.slice(2,4)

// 结果
// ['c', 'd', 'e']
// ['c', 'd']

3.splice()

在数组任意位置添加删除 (删除的话返回值是被删组成的数组集合)

删除:

array.splice(从那个索引开始,,删除几个)

let arr3=[1,2,3,4,5,6]
  arr3.splice(2,2)
console.log("删除之后还剩下什么"、,arr3); 

 

第二个参数不写,默认从指定索引删到最后:

let arr4=[1,2,3,4,5,6]
  arr4.splice(2)
console.log("第二个参数不要",arr4)  

 

添加用法(添加的话就返回空数组[ ],毕竟没有删除)

array.splice(哪个索引开始加,0,item1,......itemX)

let arr5=[1,2,5,6,7]
arr5.splice(2,0,3,4)
console.log("添加",arr5)

 

第六类 :其他

1.join()用于把数组中的所有元素转换一个字符串。元素是通过指定的分隔符进行分隔的。

let arr21=["迪丽热巴","喜欢一个","来自南宁的","小伙子","他叫橙子"]
let arr21Join= arr21.join("---")
console.log(arr21Join)    //输出  迪丽热巴---喜欢一个---来自南宁的---小伙子---他叫橙子
console.log(typeof(arr21Join) )  //  string

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值