为什么我不能在分片方法后链上方括号?

问题描述 投票:-2回答:1

我很想知道为什么在下面的片段中返回 "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"
javascript arrays string slice
1个回答
0
投票

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


0
投票

而不是一个字符串。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"
© www.soinside.com 2019 - 2024. All rights reserved.