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内置函数之间的区别是,
切片返回已删除的项,但未返回