一句话先提前概括:
slice(start,end) 从哪到哪开始
splice(strt,end,index1,index2) 从什么位置开始,删几个?删了后插入什么新元素?
注意:slice() 方法可从已有的数组中返回选定的元素。
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
数组中的slice()方法
---可以用来从数组中提取指定元素
---该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回
slice(start,end) 参数:
1. start 截取开始的位置的索引,包含开始索引,必填
2. end 截取结束的位置的索引,不包含结束索引,选写
-第二个参数可以忽略不写,此时会截取从开始索引往后的所有元素
-索引可以传递一个负值,如果传递一个负值,则从后往前计算
-1 倒数第一个
-2 倒数第二个
var arr = ["a", "b", "c", "d", "e"];console.log(arr.slice(1,4)); // ["b", "c", "d"]console.log(arr.slice(2)); // ["c", "d", "e"]console.log(arr.slice(1,-2)); // ["b", "c"]console.log(arr); // ["a", "b", "c", "d", "e"]
arr.slice(1,-2) -2表示截取到倒数第二个元素,但是不包含该元素
数组中的splice() 方法
-可以用于删除数组中的指定元素
-使用splice()会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回
-arrayObject.splice(index,howmany,item1,.....,itemX)参数:
第一个,index 规定添加/删除项目的位置,即表示开始位置的索引,使用负数可从数组结尾处规定位置,整数,必需。
第二个,howmany 表示要删除的项目数量。如果设置为 0,则不会删除项目,必需。
第三个及以后。。item1,.....,itemX 可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边,可选。
var arr = ["贾宝玉", "林黛玉", "薛宝钗", "王熙凤", "香菱"]; console.log(arr.splice(1,2)); // ["林黛玉", "薛宝钗"]console.log(arr); // ["贾宝玉", "王熙凤", "香菱"]
当第二个参数(删除数量)小于0视为0
var arr = ["贾宝玉", "林黛玉", "薛宝钗", "王熙凤", "香菱"];console.log(arr.splice(1, -2)); // []console.log(arr); // ["贾宝玉", "林黛玉", "薛宝钗", "王熙凤", "香菱"]
删除并添加
var arr = ["贾宝玉", "林黛玉", "薛宝钗", "王熙凤", "香菱"];console.log(arr.splice(1, 2, '晴雯', '紫鹃')); // ["林黛玉", "薛宝钗"]console.log(arr); // ["贾宝玉", "晴雯", "紫鹃", "王熙凤", "香菱"]
var arr = ["贾宝玉", "林黛玉", "薛宝钗", "王熙凤", "香菱"];console.log(arr.splice(1, 0, "袭人")); // []console.log(arr); // ["贾宝玉", "袭人", "林黛玉", "薛宝钗", "王熙凤", "香菱"]