# 章序号/节序号/节/笔记序号 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