# 章序号/节序号/节/笔记序号
codecademy,array
# 概念阐释
- 与[[js array 内置对象slice()]]相反,删除调用的内容,并且可以替换为新的内容
## 语法
```js
splice(start) //修改的起始位置
splice(start, deleteCount)//要修改的个数
splice(start, deleteCount, item1)//新的元素
splice(start, deleteCount, item1, item2, itemN)
```
`start`
- 指定修改的开始位置(从 0 计数)是几就从几开始修改。如果**超出了数组的长度**,则从数组末尾开始添加内容;
- 如果是**负值**,则表示从数组末位开始的第几位(从 -1 计数,这意味着 -n 是倒数第 n 个元素并且等价于 `array.length-n`);
- 如果负数的绝对值大于数组的长度,则表示开始位置为第 0 位。
`deleteCount` 可选
- 整数,表示要**移除的数组元素的个数**。
- 如果 `deleteCount` 大于 `start` 之后的元素的总数,则从 `start` 后面的元素**都将被删除**(含第 `start` 位)。
- 如果 `deleteCount` **被省略**了,`start`之后数组的所有元素都会被删除。
- 如果 `deleteCount` 是 0 或者负数,则**不移除元素**。这种情况下,至少应添加一个新元素。
`item1, item2, ...` 可选
- 要添加进数组的元素,从`start` 位置开始。如果不指定,则 `splice()` 将只删除数组元素。
# 举例子
# 类比、比较与对比
# 问题
Use an array method to remove the strings `get`, `right`, `the`, `first`, `time,`, and replace them with the single string `know,`.
```js
let secretMessage = ['Learning', 'is', 'not', 'about', 'what', 'you', 'get', 'easily', 'the', 'first', 'time,', 'it', 'is', 'about', 'what', 'you', 'can', 'figure', 'out.', '-2015,', 'Chris', 'Pine,', 'Learn', 'JavaScript'];
```
# 问题答案
```js
secretMessage.splice(6,5,'know');
console.log(secretMessage);
```
- 同.push()写法一样
- 如果直接吧method写在console里,打印的是被删除的结果。
# 备注(经验集/错误集)
## 经验集
## 错误集
## 参考资料
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice