JavaScript中slice方法使用疑问:为何slice(1,3)未包含索引3的元素?
你对slice方法的第二个入参的取值范围认知存在疏漏,JavaScript的slice方法遵循左闭右开的取值规则:
- 第一个参数为提取的起始下标,提取结果会包含该下标对应的元素
- 第二个参数为提取的终止下标,提取结果不会包含该下标对应的元素
对应你的测试代码:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1, 3); console.log(citrus);
你传入的起始下标是1,终止下标是3,所以只会提取下标1、2对应的元素,也就是Orange和Lemon,和实际运行结果一致。
如果你想要提取到下标3对应的Apple,需要将终止下标设置为4,调用方式改为fruits.slice(1, 4)即可。
另外补充两个slice的常用规则方便你后续使用:
- 如果只传入一个参数,
slice会从传入的起始下标开始,一直提取到数组末尾 - 如果传入的参数为负数,会从数组的末尾倒序计算下标,比如
slice(-3)会提取数组的最后三个元素
内容的提问来源于stack exchange,提问作者EastsideDev
相关产品推荐
相关产品推荐

