JavaScript数组拼接与切片

JavaScript数组拼接与切片,javascript,Javascript,拼接和切片之间有什么区别 $scope.participantForms.splice(index, 1); $scope.participantForms.slice(index, 1); Splice和Slice是内置的Javascript命令,而不是AngularJS命令。Slice返回从“开始”到“结束”说明符之前的数组元素。拼接会使实际数组发生变异,从“开始”开始,并保持指定的元素数。Google对此有很多信息,只需搜索即可。该方法将数组部分的副本返回到新的数组对象中 $scope.

拼接
切片
之间有什么区别

$scope.participantForms.splice(index, 1);
$scope.participantForms.slice(index, 1);

Splice和Slice是内置的Javascript命令,而不是AngularJS命令。Slice返回从“开始”到“结束”说明符之前的数组元素。拼接会使实际数组发生变异,从“开始”开始,并保持指定的元素数。Google对此有很多信息,只需搜索即可。

该方法将数组部分的副本返回到新的数组对象中

$scope.participantForms.slice(index, 1);
这不会更改
participantForms
数组,但会返回一个新数组,其中包含在原始数组的
索引
位置找到的单个元素

example: var arr = [1,2,3,4,5,6,7,8];
         arr.slice(1,3); // output [2,3] and original array remain same.
         arr.splice(1,3); // output [2,3,4] and original array changed to [1,5,6,7,8].
该方法通过删除现有元素和/或添加新元素来更改数组的内容

$scope.participantForms.splice(index, 1);
这将从
索引
位置的
participantForms
数组中删除一个元素

这些是Javascript本机函数,AngularJS与它们无关。

splice()
更改原始数组,而
slice()
不更改,但两者都返回数组对象

$scope.participantForms.slice(index, 1);
请参见以下示例:

var array=[1,2,3,4,5];
console.log(array.splice(2));
这将返回
[3,4,5]
原始数组受影响,导致
数组
[1,2]

var array=[1,2,3,4,5]
console.log(array.slice(2));
这将返回
[3,4,5]
原始数组不受影响,导致
数组
[1,2,3,4,5]

下面是确认这一点的简单小提琴:

//拼接
var数组=[1,2,3,4,5];
控制台日志(阵列拼接(2));
//切片
var array2=[1,2,3,4,5]
console.log(array2.slice(2));
console.log(在------之后以“-”号填列);
console.log(数组);

控制台日志(array2)拼接和切片都是Javascript数组函数

拼接与切片

  • splice()方法返回数组中删除的项,slice()方法返回数组中选定的元素作为新数组对象

  • $scope.participantForms.slice(index, 1);
    
  • splice()方法更改原始数组,slice()方法不更改原始数组

  • example: var arr = [1,2,3,4,5,6,7,8];
             arr.slice(1,3); // output [2,3] and original array remain same.
             arr.splice(1,3); // output [2,3,4] and original array changed to [1,5,6,7,8].
    
  • splice()方法可以接受n个参数,slice()方法可以接受2个参数

  • 带示例的拼接

    参数1:索引,必选。一个整数,指定在什么位置添加/删除项,使用负值指定从数组末尾开始的位置

    论据2:可选。要删除的项目数。如果设置为0(零),则不会删除任何项目。如果未通过,则将从提供的索引中删除所有项

    论据3…n:可选。要添加到数组中的新项

    var数组=[1,2,3,4,5];
    控制台日志(阵列拼接(2));
    //显示[3,4,5],将已删除的项作为新数组对象返回。
    console.log(数组);
    //显示[1,2],原始数组已更改。
    var array2=[6,7,8,9,0];
    控制台日志(阵列2.拼接(2,1));
    //显示[8]
    控制台.日志(阵列2.拼接(2,0));
    //显示[],因为未删除任何项目。
    控制台日志(array2);
    //显示[6,7,9,0]
    拼接-- 语法
    array.splice(start[,deleteCount[,item1[,item2[,…]])

    参数

    • 开始
      :必需。初始索引。
      如果
      start
      为负值,则从
      array
      末尾开始,按照规范(下面提供的示例)将其视为
      “Math.max((array.length+start),0)”
    • deleteCount
      :可选。要删除的元素数量(如果未提供,则全部从
      开始
    • 项目1、项目2,…
      :可选。要从
      start
      索引添加到数组中的元素
    返回:包含已删除元素的数组(如果未删除元素,则为空数组)

    变异原始数组:是

    示例:
    const数组=[1,2,3,4,5];
    //删除第一个元素
    log('Elements deleted:',array.splice(0,1),'mutated array:',array);
    //已删除元素:[1]变异数组:[2,3,4,5]
    //数组=[2,3,4,5]
    //删除最后一个元素(开始->数组。长度+开始=3)
    log('Elements deleted:',array.splice(-1,1),'mutated array:',array);
    //已删除元素:[5]变异数组:[2,3,4]
    按索引拼接和删除数组项 指数=2

    //拼接&将修改原始阵列
    常数arr1=[1,2,3,4,5];
    //切片&不会修改原始数组
    常数arr2=[1,2,3,4,5]
    console.log(“----前----”);
    控制台日志(arr1.拼接(2,1));
    console.log(arr2.slice(2,1));
    console.log(在------之后以“-”号填列);
    控制台日志(arr1);
    控制台日志(arr2);
    
    let log=console.log;
    //拼接&将修改原始阵列
    常数arr1=[1,2,3,4,5];
    //切片&不会修改原始数组
    常数arr2=[1,2,3,4,5]
    日志(“----前----”;
    对数(arr1.拼接(2,1));
    对数(arr2.slice(2,1));
    日志(在------之后以“-”号填列);
    对数(arr1);
    对数(arr2)
    
    //拼接
    var数组=[1,2,3,4,5];
    控制台日志(阵列拼接(2));
    //切片
    var array2=[1,2,3,4,5]
    console.log(array2.slice(2));
    console.log(在------之后以“-”号填列);
    console.log(数组);
    
    控制台日志(array2)这里有一个简单的技巧来记住切片与拼接之间的区别

    var a=['j','u','r','g','e','n'];
    
    // array.slice(startIndex, endIndex)
    a.slice(2,3);
    // => ["r"]
    
    //array.splice(startIndex, deleteCount)
    a.splice(2,3);
    // => ["r","g","e"]
    
    记住的诀窍:

    var a=['j','u','r','g','e','n'];
    
    // array.slice(startIndex, endIndex)
    a.slice(2,3);
    // => ["r"]
    
    //array.splice(startIndex, deleteCount)
    a.splice(2,3);
    // => ["r","g","e"]
    
    将“spl”(拼接的前3个字母)视为“specifiy length”的缩写,第二个参数应该是长度而不是索引

    tutsmake的示例1-从索引1中删除2个元素

    var arr=[“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”];
    阵列拼接(1,2);
    控制台日志(arr)另一个示例:

    [2,4,8].splice(1, 2) -> returns [4, 8], original array is [2]
    
    [2,4,8].slice(1, 2) -> returns 4, original array is [2,4,8]
    

    Slice()和Splice()javascript内置函数之间的区别是, 切片返回已删除的项,但未返回