js— splice,slice,split 还在傻傻分不清吗?
一:splice:
splice 数组操作,从数组中添加或删除元素,返回新的数组(⚠️:会对原数组进行更改,获取的是新的数组)
1: splice删除元素
var arr = [2, 3, 4, 5, 6, 7];
console.log(arr.splice(1, 3)); // 3,4,5 // x<y arr.splice(x,y) 从索引为x的开始截取y位 但当y>arr.length时,返回的是从索引为x到 arr.lenght-1(即剩下的所有)
console.log(arr) // 2,6,7 splice 会改变原数组,返回的是经过splice处理后剩下的值
var arr2 = [2, 3, 4, 5, 6, 7];
console.log(arr2.splice(-2, 2)); // 6,7
// 第一个参数为负数时从数组右边往前边数,从-1开始
2: splice添加元素
var arr3 = ["a", "b", "c", "d", "e"];
console.log(arr3.splice(2, 1, 'w', 'z')); // c 返回的是删除的元素
console.log(arr3) // ["a", "b", "w" , "z" , "d" , "e"]; // 原数组会被改变,会把添加的元素放到数组里,并且去掉删除的元素,
二:slice:
slice():用于截取数组,并返回截取到的新的数组,数组与字符串对象都使用(⚠️:对原数组不会改变)
var arr4 = [11, 12, 13, 14, 15, 16];
console.log(arr4.slice(2, 4)); // 包含从start到end(不包括该元素)的arrayObject中的元素。 // 当第二个参数大雨数组的长度-1时,返回的是剩下的所有
console.log(arr4) // 原数组不被改变
var arr5 = [11, 12, 13, 14, 15, 16];
console.log("arr4", arr4.slice(2)); // 13,14,15,16 // 只有一个参数时,返回的是从索引开始的所有
var arr6 = [11, 12, 13, 14, 15, 16];
console.log("arr5", arr6.slice(-3, -1)); // [14,15]
var arr7 = [11, 12, 13, 14, 15, 16];
console.log("arr7", arr7.slice(-3, 3)); //[] 索引-3 和 3中间没有重叠元素
var arr8 = [11, 12, 13, 14, 15, 16];
console.log("arr8", arr8.slice(-3, 0)) // [] 索引-3 和 0中间没有重叠元素
var arr9 = [11, 12, 13, 14, 15, 16];
console.log("arr9", arr9.slice(1, -2)) // [12,13,14] 从索引 1开始到索引1为-2结束,不包括-2
三: split 切割字符串为数组
var str = 'a,b,c,d';
var arr10 = str.split(',')//使用''空格切割字符串
console.log(arr10)//['a','b','c','d'];