Olá, Gabriel!
Entendo sua confusão, mas vamos esclarecer isso juntos. Quando dizemos que o parâmetro "fim" não é necessário para o método slice()
, estamos querendo dizer que ele é opcional. Se você não fornecer esse parâmetro, o método slice()
irá retornar um novo array que começa na posição "início" e vai até o final do array original.
Por exemplo, se tivermos um array como let arr = [1, 2, 3, 4, 5]
e usarmos o método slice()
como let newArr = arr.slice(2);
, o newArr
será [3, 4, 5]
. Nesse caso, não especificamos um ponto final, então o slice()
pegou todos os elementos a partir do índice 2 (terceiro elemento) até o final do array.
No entanto, você está correto ao dizer que, se especificarmos ambos os parâmetros "início" e "fim", o "fim" não será incluído no novo array. Por exemplo, se fizermos let newArr = arr.slice(1, 3);
, o newArr
será [2, 3]
, ou seja, começará no índice 1 (segundo elemento) e terminará no índice 3, mas sem incluir o elemento no índice 3.
Espero que isso esclareça sua dúvida sobre o método slice()
. A documentação da MDN é realmente uma ótima fonte de informações, mas às vezes pode ser um pouco confusa. Continue explorando e perguntando sempre que tiver dúvidas!
Espero ter ajudado e bons estudos!