数组转字符串的方法
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区别
- 功能:
- slice实现截取数组的元素,不改变原数组
- slice的第二个参数为结束下标,而splice第二个参数为长度
- splice也可以实现截取数组的元素,区别是splice改变原数组,因此也可以实现删除数组元素的操作。
- 光看返回值 这两个函数的作用相同。