一、slice(start,end) :
对数组进行部分截取,并返回一个包含截取内容的新数组,不改变原来的数组。start开始,end结束,不包含end。
1、如果两个参数都缺少,
则默认从0开始到数组的长度,即截取从坐标0开始,到数组的末尾。
var a = [1,2,3,4];
var b = a.slice();
console.log(b);
console.log(a);
结果:
[1,2,3,4]
[1,2,3,4]
2、如果只传入一个参数,则默认从该参数的坐标开始到数组的长度
var a = [1,2,3,4];
var b = a.slice(2);
console.log(b);
console.log(a);
结果:
[3,4]
[1,2,3,4]
3、如果两个参数中的任何一个是负数,就用数组的长度和参数相加返回一个正数,然后再进行截取
var a = [1,2,3,4];
var b = a.slice(2,-1);
console.log(b);
console.log(a);
结果:
[3]
[1,2,3,4]
4、slice字符串
var a = 'hello china';
var b = a.slice(2,9);
console.log(b);
console.log(a);
结果:
llo chi
hello china
二、splice(index, howmany,item1,.....,itemX):
对原数组进行增删改查,并返回一个含有被删除的元素的新数组,该方法会改变原来的数组。
index开始坐标,整数,如果不是整数,向下取整。
howmany要删除的项目数量。如果设置为小于等于 0,则不会删除项目。如果设置为大于0的非整数,则向下取整。
item1,.....,itemX,向数组添加的新项目。
如果index为负数,就用数组的长度和参数相加返回一个正数。
1、正常删除
var a = [1,2,3];
var b = a.splice(0,2);
console.log(b)
console.log(a)
结果:
[1,2]
[3]
2、要删除的数量为大于0的非整数
var a = [1,2,3];
var b = a.splice(0,1.5);
console.log(b)
console.log(a)
结果:
[1]
[2,3]
3、要删除的数量小于0
var a = [1,2,3];
var b = a.splice(0,-1);
console.log(b)
console.log(a)
结果:
[]
[1,2,3]
4、起始坐标是非整数
var a = [1,2,3];
var b = a.splice(1.2,1);
console.log(b)
console.log(a)
结果:
[2]
[1,3]
5、起始坐标是负数
var a = [1,2,3];
var b = a.splice(-1.2,1);
console.log(b)
console.log(a)
结果:
[3]
[1,2]
6、向数组添加新项目。
var a = [1,2,3];
var b = a.splice(0,2,'hello','你好',{age:18});
console.log(b)
console.log(a)
结果:
[1,2]
['hello','你好',{age:18},3]