簡體   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