我很想知道为什么在下面的片段中返回 "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)
电话 splice
阵列上 fruits
,该调用返回一个数组(["Mango"]
)而不是字符串。
而不是一个字符串。Array.prototype.slice()
返回一个数组的一部分的浅层拷贝到一个新的数组对象中。在你的例子中,你传给它一个负数,所以它从旧数组的末尾返回一个元素到新的数组对象中。
因为它是一个数组,所以你提取的是第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"