JavaScript中数组slice和splice的对比小结

slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变.
根据规范,slice 需要两个参数,起点和终点。它会返回一个包含了从起点开始,到终点之前之间所有元素的新数组。

'abc'.slice(1,2)   // "b"
[14, 3, 77].slice(1, 2) // [3]

需要特别注意的是它并不会修改原数组。

下面的代码段描述了这个行为,x 的值没有变,y 则是被截取的部分。

var x = [14, 3, 77];
var y = x.slice(1, 2);
console.log(x);   // [14, 3, 77]
console.log(y);   // [3]

除此之外,splice 还会改变原数组。

push(末尾添加元素) pop(删除并返回数组的最后一个元素) unshift(开头添加元素,并返回新长度)
shift(删除并返回数组的第一个元素)
可见添加元素则返回添加后长度, 删除元素则返回被删的那个元素。

修改自身的有: splice, pop, push, shift, unshift, sort, reverse
不修改自身的: slice, concat, join

 splice删除:color.splice(1,2) (删除color中的1、2两项);

 splice插入:color.splice(1,0,'brown','pink') (在color键值为1的元素前插入两个值);

 splice替换:color.splice(1,2,'brown','pink')  (在color中替换1、2元素);
 var colors = ["red", "green", "blue"];
var removed = colors.splice(0,1);  //删除第一项
alert(colors);  //green,blue
alert(removed);  //red,返回数组中值包含一项

removed = colors.splice(1, 0, "yellow", "orange");  //从位置1开始插入两项
alert(colors);  //green,yellow,organge,blue
alert(removed);  //返回的是一个空数组

removed = colors.splice(1, 1, "red", "purple");  //插入两项,删除一项
alert(colors);  //green,red,purple,orange,blue
alert(remove);  //yellow, 返回的数组中只包含一项
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript数组有两个常用的方法:slicesplice。 1. slice 方法: slice 方法是用于从数组提取指定范围的元素,然后返回一个新的数组。它接受两个参数,即开始索引和结束索引(不包括结束索引本身),如果省略结束索引,则会一直提取到数组末尾。原始数组不会被修改。 示例: ```javascript const fruits = ['apple', 'banana', 'orange', 'grape', 'kiwi']; const slicedFruits = fruits.slice(1, 4); // 从索引 1 到 4(不包括 4)提取元素 console.log(slicedFruits); // 输出:['banana', 'orange', 'grape'] const slicedFruits2 = fruits.slice(2); // 从索引 2 开始提取元素到数组末尾 console.log(slicedFruits2); // 输出:['orange', 'grape', 'kiwi'] console.log(fruits); // 输出原始数组,不受 slice 方法影响:['apple', 'banana', 'orange', 'grape', 'kiwi'] ``` 2. splice 方法: splice 方法用于修改原始数组,它可以用于删除、插入或替换数组的元素。它接受三个或更多参数,第一个参数是开始索引,第二个参数是需要删除的元素个数,之后的参数是要插入到数组的新元素(可选)。splice 方法会返回一个包含被删除元素的数组。 示例: ```javascript const fruits = ['apple', 'banana', 'orange', 'grape', 'kiwi']; const deletedFruits = fruits.splice(2, 2); // 从索引 2 开始删除 2 个元素 console.log(deletedFruits); // 输出:['orange', 'grape'] console.log(fruits); // 输出被修改后的数组:['apple', 'banana', 'kiwi'] fruits.splice(1, 0, 'pear', 'melon'); // 从索引 1 开始插入新元素 console.log(fruits); // 输出被修改后的数组:['apple', 'pear', 'melon', 'banana', 'kiwi'] fruits.splice(4, 1, 'mango'); // 从索引 4 开始替换一个元素 console.log(fruits); // 输出被修改后的数组:['apple', 'pear', 'melon', 'banana', 'mango'] ``` 希望这些示例能够帮助你理解 slicesplice 方法的用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值