繁体   English   中英

为什么我不能在切片方法之后链接方括号?

[英]why I can't chain square braces after slice method?

我很想知道为什么在下面的代码段中返回“Mango”而不是“M”:

 var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
 var myBest = fruits.slice(-1)[0]
 console.log(myBest) // "Mango"

通常在字符串之后链接方括号会像数组一样处理它:

var myBest = "Mango"[0]
console.log(myBest) // "M"

fruits是一个数组, fruits.slice(-1)在数组fruits上调用splice ,并且该调用返回一个数组( ["Mango"] )而不是字符串。

Array.prototype.slice()将数组的一部分的浅拷贝返回到新数组 object 中。 在您的情况下,您已将负数传递给它,因此它从新数组 object 中的旧数组末尾返回一个元素。

由于它是一个数组,因此您正在提取第 0 个索引处的内容。 在您的情况下,第 0 个索引具有旧数组中的最后一个元素'Mango' ,而不是字符串。

 var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var myBest = fruits.slice(-1); console.log(myBest) // Is an array console.log(myBest[0]) // "Mango"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM