freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-an.../basic-data-structures/add-items-using-splice.md

2.5 KiB

id title challengeType forumTopicId dashedName
587d78b3367417b2b2512b11 Adicionar itens usando splice() 1 301152 add-items-using-splice

--description--

Você se lembra de quando mencionamos no último desafio que splice() pode receber até três parâmetros? Bem, você pode usar o terceiro parâmetro, composto por um ou mais elementos, para adicionar algo ao array. Isso pode ser incrivelmente útil para mudar rapidamente de um elemento, ou um conjunto de elementos, para outro.

const numbers = [10, 11, 12, 12, 15];
const startIndex = 3;
const amountToDelete = 1;

numbers.splice(startIndex, amountToDelete, 13, 14);
console.log(numbers);

A segunda ocorrência de 12 é removida, e adicionamos 13 e 14 no mesmo índice. O array numbers agora seria [ 10, 11, 12, 13, 14, 15 ].

Aqui, começamos com um array de números. Em seguida, passamos o seguinte para splice(): o índice no qual começar a deletar os elementos (3), o número de elementos a serem deletados (1) e os argumentos restantes (13, 14) serão inseridos com início no mesmo índice. Note que pode haver um número qualquer de elementos (separado por vírgulas) seguindo amountToDelete, cada um dos quais é inserido.

--instructions--

Definimos uma função, htmlColorNames, a qual recebe um array de cores HTML como argumento. Modifique a função usando splice() para remover os dois primeiros elementos do array e adicionar 'DarkSalmon' e 'BlanchedAlmond' em seus respectivos lugares.

--hints--

htmlColorNames deve retornar ["DarkSalmon", "BlanchedAlmond", "LavenderBlush", "PaleTurquoise", "FireBrick"]

assert.deepEqual(
  htmlColorNames([
    'DarkGoldenRod',
    'WhiteSmoke',
    'LavenderBlush',
    'PaleTurquoise',
    'FireBrick'
  ]),
  [
    'DarkSalmon',
    'BlanchedAlmond',
    'LavenderBlush',
    'PaleTurquoise',
    'FireBrick'
  ]
);

A função htmlColorNames deve utilizar o método splice()

assert(/.splice/.test(code));

Você não deve usar shift() ou unshift().

assert(!/shift|unshift/.test(code));

Você não deve usar a notação de colchetes de array.

assert(!/\[\d\]\s*=/.test(code));

--seed--

--seed-contents--

function htmlColorNames(arr) {
  // Only change code below this line

  // Only change code above this line
  return arr;
}

console.log(htmlColorNames(['DarkGoldenRod', 'WhiteSmoke', 'LavenderBlush', 'PaleTurquoise', 'FireBrick']));

--solutions--

function htmlColorNames(arr) {
  arr.splice(0,2,'DarkSalmon', 'BlanchedAlmond');
  return arr;
}