数组的方法
数组对象的方法:
Array.of:创建数组实例
Array.isArray(val):检测变量是否为数组。返回一个布尔值
Array.from():将非数组的元素转化成数组。(前提:该元素具有 length 属性)
使用场景:开发中遇到的比较多的是将 nodeList 转换成数组来进行操作,或者是对 set 格式的数据结构来进行处理。
在ES6 中,直接使用拓展运算符来将非数组元素转换成数组会更加方便一点。
数组实例的方法:
1. 把数组转化为字符串的方法:实际上就是把数组的所有元素以某种方式拼接起来
toString():默认以逗号分隔
使用:arr.toString()
const arr = [1, 2, 3]
arr.toString() // 1,2,3
String():默认以逗号分隔
使用:String(arr)
const arr = [1, 2, 3]
String(arr) // 1,2,3
join():默认以逗号分隔,但是可以设置其他分隔符
使用:arr.join()
const arr = [1, 2, 3]
arr.join() // 1,2,3
const arr = [1, 2, 3]
arr.join("-") // 1-2-3
const arr = [1, 2, 3]
arr.join("") // 123
const arr = [1, 2, 3]
arr.join(" ") // 1 2 3
2. 对数组进行增删改的方法
push():在数组的末尾新增一个或多个元素。返回新增后的数组长度。
使用:arr.push(val)
const arr = [1, 2, 3]
arr.push("a","b") // 5
console.log(arr) // [1, 2, 3, 'a', 'b']
pop():删除数组的最后一个元素。返回该元素。
使用:arr.pop()
const arr = ['a', 'b', 'c', 'd', 'e']
arr.pop() // 'e'
console.log(arr) // ['a', 'b', 'c', 'd']
const arr = []
arr.pop() // undefined
console.log(arr) // []
unshift():在数组的开头新增一个或多个元素。返回新增后的数组长度。
const arr = [1, 2, 3]
arr.unshift("a","b") // 5
console.log(arr) // ['a', 'b', 1, 2, 3]
shift():删除数组的第一个元素。返回该元素。
使用:arr.shift()
const arr = ['a', 'b', 'c', 'd', 'e']
arr.shift() // 'a'
console.log(arr) // ['b', 'c', 'd', 'e']
const arr = []
arr.pop() // undefined
console.log(arr) // []
splice():可以对数组的元素进行增加,删除以及替换。
如果是对首尾的元素进行添加或删除,可以使用上面的几个方法。但是如果想对中间的元素进行操作,就得用到 splice 方法。
splice 方法接收三个参数,start,deleteCount,items
start:指定修改开始的位置。(修改包括新增、删除以及替换)
deleteCount:表示要移除的元素的个数。
items:要添加到数组里的元素,可以是多个。
字符串的方法
把字符串转化为数组:
split():根据特定的字符串来拆分字符串。返回一个数组。
使用:str.split(",")
const str = 'abcdef'
str.split() // ['abcdef']
const str = 'abc,def'
str.split(',') // ['abc', 'def']
const str = 'abc,def'
str.split('') // ['a', 'b', 'c', ',', 'd', 'e', 'f']
使用上面的Array.from()方法也可以将字符串转成数组,这是因为字符串有length属性,可以被转化。