var arr = ['I', 'am', 'an', 'array', '!']
var str = 'I am an array !'
数组转字符串
console.log(arr.join('')) //Iamanarray!
console.log(arr.join(' ')) //I am an array !
字符串转数组
console.log(str.split(' '))
//["I", " ", "a", "m", " ", "a", "n", " ", "a", "r", "r", "a", "y", " ", "!"]
console.log(str.split(' '))
//["I", "am", "an", "array", "!"]
数组的截取
slice(start, end)
前包含,后不包含相当于数学中的 [start, end)
参数end可以为负值,从后往前数,最后一个元素为 -1
slice()返回的是截取出来的部分,原数组不会更改
console.log(arr.slice(2,3)) //['an']
splice()
强大的方法,可以往数组中添加或删除元素,因返回被删除的元素
splice(start, 截取的位数, 添加的值1, 添加的值2, ...)
splice()返回的是被截取出来的部分, 原数组已经被更改
console.log(arr.splice(2,3)) // ['an', 'array', '!']
console.log(arr) // ['I', 'am']
console.log(arr.splice(2, 2, 'a', 'new', 'array2'))
//['an', 'array']
console.log(arr)
// ['I', 'am', 'a', 'new', 'array2', '!']
数组的首尾添加删除
首添加 unshift()
返回值是修改后数组的length值
console.log(arr.unshift('head')) //6
console.log(arr) //['head','I', 'am', 'an', 'array', '!']
首删除 shift()
返回的是被删除的元素
数组为空时,返回undefined
console.log(arr.shift()) //['I']
console.log(arr) //['am', 'an', 'array', '!']
尾添加 push()
push()已经是最常用的
返回值是添加新元素后数组的长度
console.log(arr.push('@')) //6
console.log(arr) //['I', 'am', 'an', 'array', '!', '@']
尾删除 pop()
返回的是被删除的元素
数组为空时,返回undefined
console.log(arr.pop()) //['!']
consoe.log(arr) //['I', 'am', 'an', 'array']
数组的合并
ES5
var arr2 = ['str1', 'str2']
console.log(arr.concat(arr2)) //['I', 'am', 'an', 'array', '!', 'str1', 'str2']
ES6
var arr2 = ['str1', 'str2']
console.log([...arr, ...arr2])