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