首先对单词释义
- slice: 强调的是用刀片将某个物体切割成某种特定的形状,因此常常用于食物、工业行业相关的切割。
- split: 强调的是使用力量将一个物体切成两块或多块。强调的是原本一体的东西被分割成了多块。
- splice: 连接的意思
* 及物动词绞接; 捻接(两段绳子); 胶接; 粘接(胶片、磁带等);
* 名词:胶接处,粘接处,铰接处
slice
- 语法: arr.slice([begin[, end]]) 原始数组不会被改变;
- 两个参数都表示索引(包前不包后), 都是可选;
- 表示根据索引位置截取出一段新数组.
let arr = [33,44,55,66,77,88]
let newArr = arr.slice(1, 3)// 表示从1索开始截取到3索引(不含3索引号)的元素
console.log(newArr) // -> [44, 55]
注意
- 如果只传第一个参数, 表示从该索引位置开始截取全部元素;
- 如果两个参数都不传, 返回的新数组是浅拷贝, 注意!
split
- str.split([separator[, limit]]) 原始数组不会被改变;
- 用指定字符切割数组, 可以指定切割出多少个元素, 以数组形式返回;
注意
- 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割;
- String.split() 执行的操作与 Array.join 执行的操作是相反的。
- 由第二点可以完成字符串的反转: “我爱前端”.split(’’).reverse().join(’’)
splice
- 语法: array.splice(start [, deleteCount[, item1[, item2[, …]]]]) 会改变原数组
- 通过"删除" 或 “替换现有元素” 或者 "原地添加新的元素"来修改数组, 并以数组形式返回被修改的内容.
-
翻译为:在索引为2的位置,删除0个,插入后面元素。插入
let person = ["卡卡西", "鸣人", "春野樱", "我爱罗"] person.splice(2, 0, "大蛇丸", "药师兜") console.log(person) // -> ['卡卡西', '鸣人', '大蛇丸', '药师兜', '春野樱', '我爱罗']
-
翻译为:在索引为2的位置,删除2个,插入后面元素。替换
let person = ["卡卡西", "鸣人", "春野樱", "我爱罗"] person.splice(2, 2, "大蛇丸", "药师兜") console.log(person) // -> ['卡卡西', '鸣人', '大蛇丸', '药师兜']
-
删除 fruits 中的第一个元素
let person = ["卡卡西", "鸣人", "春野樱", "我爱罗"] person.splice(0, 1) console.log(person) // -> ['鸣人', '春野樱', '我爱罗']