【问题标题】:why I can't chain square braces after slice method?为什么我不能在切片方法之后链接方括号?
【发布时间】:2020-08-15 22:47:27
【问题描述】:

我很想知道为什么在下面的 sn-p 上返回“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"

【问题讨论】:

  • 你使用的splice在哪里?
  • 打错字了……抱歉,我会改正的
  • 自己的努力,请...阅读文档以了解 slice/splice(无论您现在的意思)返回的内容,查看不带 [0] 的相关结果并尝试根据返回了解原因在文档中描述,然后想想 [0] 最后做了什么......

标签: javascript arrays string slice


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    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"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      相关资源
      最近更新 更多