почему я не могу связать квадратные скобки после метода среза? - PullRequest
0 голосов
/ 01 мая 2020

Я в порядке ios, чтобы понять, почему в приведенном ниже фрагменте верните «Man go», а не «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"

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

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"
0 голосов
/ 01 мая 2020

fruits является массивом, а fruits.slice(-1) вызывает splice для массива fruits, и этот вызов возвращает массив (["Mango"]), а не строку.

...