JS总结——关于数组的方法1

数组转字符串的方法

1.toString

功能:将数组转为字符串,用逗号连接

console.log([[1,[2]],[3,4,10086]].toString())
打印结果 1,2,3,4,10086
  • toString方法可以先将数组扁平化(多维转化为1维),然后对每个元素用逗号连接,形成一个字符串

2.join

功能:将数组转为字符串,用连接符连接

//如果不传递参数
console.log([1,[2,[3,4,5]]].join())
打印结果 1,2,3,4,5

//如果传递参数为空
console.log([1,[2,[3,4,5]]].join(""))
打印结果 12,3,4,5

//如果传递参数不为空
console.log([1,[2,[3,4,5],3]].join("-"))
打印结果 1-2,3,4,5-3

//如果传递参数不为空,且数组是一维
console.log([1,2,3,4,5].join("-"))
打印结果 1-2-3-4-5
  • join方法,就如命名一样,可以是用来连接数组元素的,传递的参数相当于数组之间的连接符号
  • 似乎没有想象的简单,如果不传递连接符,则就默认像toString一样,用逗号,连接
  • 连接符只能在第一维进行连接,其余二维及以上依然应用默认的逗号,进行连接

3.split

功能:字符串转为数组,用分割符分开

console.log("123-332-332".split("-"))
打印结果 ['123', '332', '332']

//如果参数为空,则所有字符之间都会被分割
console.log("123-332-332".split(""))
打印结果 ['1', '2', '3', '-', '3', '3', '2', '-', '3', '3', '2']

//如果不指定参数,则返回原数组
console.log("123-332-332".split())
打印结果 ['123-332-332']
  • 注:split还可以传入第二个参数,用于限定返回的字符串数组的长度

  • split是join的逆操作

数组的堆栈方法

1.push,pop

  • 入栈出栈,在数组最后压入元素,数组最后弹出元素
  • 注:pop的返回值是出栈元素

2. shift,unshift

  • 入队出队,在数组最前元素入队,数组最前元素出队
  • 注:unshift的返回值是出队元素

数组的排序方法

1.sort

功能:将数组按照传入函数的规则排序

 let arr = [2,3,1,4,5]
 //不传参
console.log(arr.sort())
打印结果 [1, 2, 3, 4, 5] 

console.log(arr,arr.sort((a,b)=>b-a ))//降序排列
打印结果 [5, 4, 3, 2, 1][5, 4, 3, 2, 1]
  • 注:sort会改变原数组,不传参时按默认升序

2.reverse

功能:将原数组倒序排列

console.log(arr,arr.reverse())
打印结果 [5, 4, 1, 3, 2][5, 4, 1, 3, 2]
  • 同样reverse 也会改变原数组

数组拼接

1.concat

//传递多个数值
console.log(arr,arr.concat(3,4))
打印结果 [1, 2][1, 2, 3, 4]

//传递一维数组
console.log(arr,arr.concat([3,4]))
[1, 2][1, 2, 3, 4]

//传递多维数组
console.log(arr,arr.concat([3,[4]]))
打印结果[1, 2][1, 2, 3, Array(1)]
  • concat可以传入多个参数,每个参数可以是单个数值或者数组,但如果传递的是多维数组,concat将不会将数组扁平化后连接,而是按原来的结构进行连接

数组截取

1.slice

将原数组中指定位置的元素,生成新数组返回

console.log(arr.slice())
打印结果 [1, 2, 3, 4, 5]

//只传一个参数,返回该参数下标到数组最后的所有元素
//slice不改变原数组,而是返回新的数组
console.log(arr,arr.slice(2))
打印结果 [1, 2, 3, 4, 5] [3, 4, 5]

//传两个参数,返回包含原数组[arg1,arg2)位置元素的数组
console.log(arr.slice(2,4))
打印结果  [3, 4]

//如果[arg1,arg2)为空集则返回空数组
console.log(arr.slice(4,2))
打印结果 []

//传递的是负数,且只传递一个参数,则返回从右往左数的第|arg1|个元素到数组最后元素的数组
console.log(arr.slice(-2))
打印结果 [4, 5]

//返回包含原数组倒数第二个到倒数第一个元素的数组
console.log(arr,arr.slice(-2,-1))//
  • 注:slice不改变原数组

2.splice

将数组中对应下标的元素删除,返回删除的元素组成的数组

第一个参数为起始下标,第二个参数为删除数组长度
如果传入第三个参数,则代表将删除位置替换为第三个参数
console.log(arr,arr.splice(0,2,['a','b']))
打印结果[['a', 'b'], 3, 4, 5, 6, 7, 8] [1, 2]
  • 注:splice改变原数组

总结slice与splice区别

  • 功能:
  1. slice实现截取数组的元素,不改变原数组
  2. slice的第二个参数为结束下标,而splice第二个参数为长度
  3. splice也可以实现截取数组的元素,区别是splice改变原数组,因此也可以实现删除数组元素的操作。
  4. 光看返回值 这两个函数的作用相同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑白程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值