concat
concat()方法可以基于当前的所有项创建一个新数组。具体来说,此方法先创建当前数组一个副本,然后将收到的参数添加到这个副本的末尾,最后返回新构建的数组
-
concat()方法没有传递参数的情况下,只是复制当前数组并返回副本
var colors = ['red', 'green', 'blue'] var colors2 = colors.concat() console.log(colors) // ["red", "green", "blue"] console.log(colors2) // ['red', 'green', 'blue']
-
concat()方法传递一或多个数组,该方法会将这些数组中的每一项都添加到结果数组中
var colors = ['red', 'green', 'blue'] var colors2 = colors.concat(['black', 'yellow']) console.log(colors) // ["red", "green", "blue"] console.log(colors2) // ["red", "green", "blue", "black", "yellow"]
-
concat()如果传递的不是数组,这些值就会被简单的添加到结果数组的末尾
var colors = ['red', 'green', 'blue'] var colors2 = colors.concat('gray', 'pink') console.log(colors) // ["red", "green", "blue"] console.log(colors2) // ["red", "green", "blue", "gray", "pink"]
slice
slice()方法基于当前数组中的一或多个项创建一个新数组。可以接收一或两个参数,即要返回项的起始和结束位置。
-
在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项
var colors = ['red', 'green', 'blue', "red", "green", "blue"] var colors2 = colors.slice(1) console.log(colors) // ["red", "green", "blue", "red", "green", "blue"] console.log(colors2) // ["green", "blue", "red", "green", "blue"]
-
在有两个参数时,该方法返回起始和结束位置之间的项,但不包括结束位置
var colors = ['red', 'green', 'blue', "red", "green", "blue"] var colors2 = colors.slice(1, 4) console.log(colors) // "red", "green", "blue", "red", "green", "blue"] console.log(colors2) // ["green", "blue", "red"]
注意:slice()方法不会影响原始数组