#javascript #slice
Вопрос:
Я получаю первый ломтик банана:
let str = "Apple, Banana, Kiwi";
document.getElementById("demo").innerHTML = str.slice(7,13);
Теперь это сбивает меня с толку, потому что оно основано на нуле и показывает это как ответ
let str = "Apple, Banana, Kiwi";
str.slice(-12, -6) // Returns Banana
не уверен, почему это не » «Банановые кавычки означают пробел, а цифра -6 выше включает последний символ, но это не должно быть, как показывает мой пример здесь, потому что в качестве состояний javascript с методом среза последнее число не включено. Надеюсь, вы сможете помочь в моем замешательстве с моей стороны??
Комментарии:
1. Я бы рекомендовал прочитать документы: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… Я считаю, что они довольно хорошо объясняют аргументы
Ответ №1:
Если beginIndex
или endIndex
есть negative
, то это рассматривается как
beginIndex = str.length beginIndex
endIndex = str.length endIndex
let str = "Apple, Banana, Kiwi";
const negativeStart = -12;
const negativeEnd = -6;
console.log(str.slice(negativeStart, negativeEnd)) // Returns Banana
const start = str.length negativeStart;
const end = str.length negativeEnd;
console.log(start);
console.log(end);
console.log(str.slice(start, end));
Комментарии:
1. Я видел пример и прочитал Moz, и да, это имеет смысл с формулой, которую вы использовали выше, и я вижу, как это работает. Моя ошибка заключалась в том, что я полагал, что он начался с фактического конца и отсчитывался с 0, что, похоже, я ошибаюсь.