返回新数组方法

356 阅读1分钟

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()方法不会影响原始数组

splice:同可改变数组方法介绍