1 slice (切片) 是纯函数,不会改变源数据。
从第x开始,截取到x(不包含x)
let arr = [10,20,30,40,50]; const arr1 = arr.slice(1,4);//[20,30,40] 从第1(20)开始截取到第4个(不包含第4个)
从第x开始,截取到最后
let arr = [10,20,30,40,50]; const arr1 = arr.slice(12);//[30,40,50]
截取后x个
let arr = [10,20,30,40,50]; const arr1 = arr.slice(-2);//[40,50]
2 splice (剪接) 非纯函数,改变源数据
第一个参数是从第x个开始,第二个参数是剪切x个,返回值是剪切出来的结果,在源数据的剪切空缺处拼接上后面的参数
let arr = [10,20,30,40,50]; const result = arr.splice(1,2,'a','b','c') console.log(arr) // [10,'a','b','c',40,50]
console.log(result) // [20,30]
从第x个开始剪切,但是不增加源数据
let arr = [10,20,30,40,50]; const result = arr.splice(1,2) console.log(arr) //[10,40,50] console.log(result) //[20,30]
只插入,但是不剪切
let arr = [10,20,30,40,50]; const result = arr.splice(1,0,'a','b') console.log(arr) //[10,'a','b',20,30,40,50] console.log(result) //[]
3 concat (拼接) 非纯函数,改变源数据
向数组追加元素
let arr = [10,20,30,40,50]; let arr1 = arr.concat(60,70) console.log(arr1)//[10, 20, 30, 40, 50, 60, 70]
连接2个数组,形成新数组,不会改变源数据,要用新变量接受,如果要拼接多个数组,可以传入多个变量
let arr = [10,20,30,40,50]; let arr2 = [60,70] let arr1 = arr.concat(arr2) console.log(arr1) //[10, 20, 30, 40, 50, 60, 70]
4 join (分割) 将数组用指定符号分割成字符串 ,如果不传入分割符号,则默认','
let arr = [10,20,30,40,50]; let arr1 = arr.join('&') console.log(arr1) //10&20&30&40&50
5 pop 删除并返回数组的最后一个元素 ,会改变源数据
let arr = [10,20,30,40,50]; let arr1 = arr.pop() console.log(arr1) // 50 console.log(arr) // [10, 20, 30, 40]
6 shift 删除并返回数组的第一个元素 ,会改变源数据
let arr = [10,20,30,40,50]; let arr1 = arr.shift() console.log(arr1) // 10 console.log(arr) // [20, 30, 40, 50]
7 push(追加)方法可向数组的尾部添加一个或更多元素,会改变源数据,返回值是数组长度
let arr = [10,20,30,40,50]; let arr1 = arr.push(60,70) console.log(arr1) // 7 console.log(arr) // [10, 20, 30, 40, 50, 60, 70]
8 unshift (前面添加) 方法可向数组的开头添加一个或更多元素,返回值是数组的长度。
let arr = [10,20,30,40,50]; let arr1 = arr.unshift(1,2) console.log(arr1) // 7 console.log(arr) // [1, 2, 10, 20, 30, 40, 50]
9 reverse (倒序) 数组倒序,会改变源数据
let arr = [10,20,30,40,50]; let arr1 = arr.reverse(1) console.log(arr) // [50, 40, 30, 20, 10]
10 sort (排序) 按照字符码进行排序
let arr = ['banana','apple','pear']; console.log(arr.sort()) //["apple", "banana", "pear"]
let arr = ['10','1000','5','200']
console.log(arr.sort()) //["10", "1000", "200", "5"]
如果想让上面的数组按照转化成数字之后的大小排列,需要传入一个排列函数
function sortBy(a,b){ return a - b; } let arr = ['10','1000','5','200'] console.log(arr.sort(sortBy)) //["5", "10", "200", "1000"]
11 toString 把数组转换为字符串,并返回结果,不会改变源数据
let arr = [10,20,30,40,50]; console.log(arr.toString()) // 10,20,30,40,50