[英]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.