JS中slice和splice的用法及小练习

数组的方法:slice和splice

  • slice可以从数组中提取指定元素,需要两个参数,该方法不会改变原数组,会将索引到的元素封装到一个新的数组中返回

    1.截取开始位置的索引,包括开始索引的元素。

    2.截取结束的索引,不包括结束的索引

    • 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
    • 索引可以传递一个负值,,表示从后往前计算,-1表示最后一个,-2表示倒数第二个
var arr = ["张三","李四","小明"];

var result = arr.slice(0,2);	//索引从0开始,到2结束,一共两个元素,不包含索引为2的元素并返回

var result2 = arr.slice(2);	//截取索引为2后面的所有元素

//传递的索引为负数
var result3 = arr.slice(1,-2);	//表示从索引为1的元素开始截取,到倒数第二个结束,不包含倒数第二个元素。
  • splice删除数组中指定的元素,会影响到原数组,并将被删除的元素作为返回值返回。

    参数,第一个表示开始位置的索引,第二个表示删除的数量,第三个及以后,可以传递一些新的元素,这些元素将会自动插入到开始位置索引前面

    • splice(); 可以删除指定元素、替换指定元素、在指定位置插入元素
var arr = ["张三","李四","小明"];

var result = arr.aplice(0,2);	//从索引为0的元素开始,删除2个元素,包括索引为0的元素

var result2 = arr.aplice(0,1,"小红");    //删除索引为0开始的一个元素,用小红来代替被删除逇元素

var reault = arr.splice(1,0,"小红");	//删除出索引为0的元素后的零个元素,也就是不删除,在索引为1的元素前面插入新元素“小红”。
console.log(result);

**练习:**去除数组中重复的数组

var arr = [1,2,3,4,2,5,1,3];

//去除数组中的每一个元素
for(i=0;i<arr.length;i++){
	//里面的循环要从索引为i的元素的下一个元素开始遍历
	for(j=i+1;j<arr.length;j++){
		//判断两个元素的值是否相等
		if(arr[i] == arr[j]){
			//如果相等则证明出现了重复的元素,则删除j对应的元素
			arr.splice(j,1);
		}
	}
}
console.log(arr);	//因为arr.splice();会将被删除的元素作为返回值返回,所以输出的时候应当输出删除重复元素后的数组,而不是被删除的元素

上面的代码中,原数组中如果出现连续两个相同的元素,会出现错误:连续相同元素的第一个元素被对比删除后,后面的元素会自动填充空位,所以连续相同元素的第二个元素就填补了被删除的第一个元素的空位,用来对比的元素会跳过填充的这个位置,导致漏掉重复元素没有删除,针对以上问题进行了优化,代码如下:

var arr = [1,2,3,4,2,5,1,3];

//去除数组中的每一个元素
for(i=0;i<arr.length;i++){
	//里面的循环要从索引为i的元素的下一个元素开始遍历
	for(j=i+1;j<arr.length;j++){
		//判断两个元素的值是否相等
		if(arr[i] == arr[j]){
			//如果相等则证明出现了重复的元素,则删除j对应的元素
			arr.splice(j,1);
            
            //使j自减
            j--;	//和填充上来的元素再进行一次对比
		}
	}
}
console.log(arr);	//因为arr.splice();会将被删除的元素作为返回值返回,所以输出的时候应当输出删除重复元素后的数组,而不是被删除的元素
  • 1
    点赞
  • 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、付费专栏及课程。

余额充值