JavaScript中数组的concat()、slice()、splice()方法

1.concat()方法

concat()方法:基于当前数组中所有项创建新数组。
具体过程: 先创建数组的一个副本,若是concat()有参数,将接收到的参数添加到副本的末尾,然后返回新构建的数组;若是没有参数,仅仅复制当前数组并返回副本数组。

concat()中的参数可以是一个新的数组也可以是一个字符串。

  var colors = ["red","green","blue"];
  var colors2 = colors.concat("yellow",["black","brown"]);

  alert(colors);
  alert(colors2);

结果为colors为数组[“red”,”green”,”blue”];
colors2为数组[“red”,”green”,”blue”,”yellow”,”black”,”brown”];
concat()方法只是用当前数组重新创建一个新的数组,因此当前数组保持不变(colors数组不变)。

2.slice()

slice()方法:基于当前数组中的一个或多个项创建一个新数组。
slice()方法中可以有一个或者两个参数(代表数组的索引值,0,1,2……)。接收一个参数时:返回当前数组中从此参数位置开始到当前数组末尾间所有项。接收两个参数时:返回当前数组中两个参数位置间的所有项,但不返回第二个参数位置的项。
参数也可以为负数,表示从末尾算起,-1代表最后一个,使用方法和正数一样。

  var colors = ["red","green","blue","yellow","black","brown"];
  var colors2 = colors.slice(2);
  var colors3 = colors.slice(1,4);
  var colors4 = colors.slice(2,-2);
  var colors5 = colors.slice(-3,-1);

  console.log(colors2);
  console.log(colors3);
  console.log(colors4);
  console.log(colors5);

结果为:

  [“blue”, “yellow”, “black”, “brown”] 
  [“green”, “blue”, “yellow”] 
  [“blue”, “yellow”] 
  [“yellow”, “black”] 

3.splice()

splice()主要用途是向当前数组的中间插入项,可以进行删除、插入、替换操作。会返回一个数组,包含从原始项中删除的项(若果没有删除,返回一个空数组)

删除:两个参数,删除起始项的位置和删除的项数。

  var colors = ["red","green","blue"];
  var removed = colors.splice(1,2);
  alert(colors);      //red
  alert(removed);     //green,blue

插入:在指定位置插入任意数量项,包括两个基本参数(即删除操作中的两个参数类型)和要插入项的参数,两个基本参数为起始位置和0(要删除的项数应为0项),要插入的项参数可以是任意个(”red”,”green”,”blue”)。

var colors = ["red","green","blue"];
var removed = colors.splice(1,0,"yellow","orange");
alert(colors);      //"red","yellow","orange","green","blue"
alert(removed);     //空数组

替换:向指定位置插入任意数量的项同时删除任意数量的项,插入项数和删除项数可以不同。参数包括两个基本参数(即删除操作中的两个参数类型)和要插入项的参数。

var colors = ["red","green","blue"];
var removed = colors.splice(1,1,"purple","black");
alert(colors);    //"red","purple","black","blue"
alert(removed);   //"green"

其实总的理解是splice()方法包含两个删除项基本参数和任意个插入项参数,两个删除项基本参数中第一个指定删除位置,第二个指定删除个数,如果个数为0,自然不删除,只有指定位置功能了。任意个插入项参数代表要插入的项值,数量不限,可省略,省略时splice()方法只进行删除操作。

你可能感兴趣的:(JavaScript中数组的concat()、slice()、splice()方法)