Considere o trecho JavaScript exibido a seguir. const a = [...

Próximas questões
Com base no mesmo assunto
Q1902423 Programação
Considere o trecho JavaScript exibido a seguir.
const a = [1,2,3,4,5]; const b = a.map(xpto); alert(b); function xpto (x, y) {    return x * y; }
Assinale o conteúdo exibido na execução do script acima. 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - 0,2,6,12,20

Esta questão aborda o uso da função map em JavaScript, que é utilizada para transformar os elementos de um array aplicando uma função a cada um dos seus itens. A função map chama a função callback fornecida uma vez para cada elemento do array, em ordem, e constrói um novo array com os valores retornados pela função callback.

Para resolver a questão, precisamos entender o que a função xpto faz. A função xpto recebe dois parâmetros, x e y, e retorna o produto deles (x * y). Na função map, x representa o elemento atual do array que está sendo processado e y representa o índice desse elemento no array.

Portanto, quando a função map é aplicada ao array a, que contém os valores [1, 2, 3, 4, 5], a função callback xpto é chamada para cada elemento do array, com os seguintes valores de x (elemento) e y (índice):

  • (1, 0) -> 1 * 0 = 0
  • (2, 1) -> 2 * 1 = 2
  • (3, 2) -> 3 * 2 = 6
  • (4, 3) -> 4 * 3 = 12
  • (5, 4) -> 5 * 4 = 20

O novo array resultante dessas operações será então [0, 2, 6, 12, 20], que é exatamente o que a alternativa A indica. Por isso, a alternativa A é a correta.

É importante notar que a função map não altera o array original (no nosso caso, o array a), ela cria um novo array com os resultados das operações realizadas pela função fornecida. Esse é um conceito fundamental em programação funcional, onde funções não causam efeitos colaterais e trabalham com dados imutáveis.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Conceitos:

  • Quando map recebe uma função com 2 parâmetros, o primeiro será o elemento atual, e o segundo será seu índice
  • A função xpto foi declarada no final, mas vai ser movida para o topo (característica chamada "hosting")

Execução para o vetor [1,2,3,4,5]:

  • elemento * índice
  • 1*0 = 0
  • 2*1 = 2
  • 3*2 = 6
  • 4*3 = 12
  • 5*4 = 20

 

GAB A

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

o array a é o input da funcao map()

const b = a.map(xpto);

//declara var b e atribui a ela o resultado da funcao map() sobre o array a. map usa a funcao xpto em CADA ELEMENTO DO ARRAY, retornando um novo arrat com os valores convertidos, o qual é atribuido á var b.

IMPORTANT: a funcao xpto, usada em sua configuracao default, TRANSFORMA os elementos do array MULTIPLICANDO CADA ELEMENTO PELO VALOR DA POSICAO DE SEU INDEX. eg.: [1,2,3,4,5] retorna [0,2,6,12,20], sendo 1*0, 2*1, 3*2,4*3,5*4.....

const a = [1,2,3,4,5];

const b = a.map(xpto);

alert(b);

function xpto (x, y) {  return x * y; }

O método  passa para a função  o valor do elemento atual do array como  e o índice desse elemento como . Por fim, o código mostra um alerta com o valor de .

Vamos começar:

Para a = 1 temos o map fazendo 1 = x e y=0(1 índice do array). A funcion xpto tem o return 1*0 = 0;

Para a = 2 temos o map fazendo 2 = x e y=1(2 índice do array). A funcion xpto tem o return 2*1 = 1;

Para a = 3 temos o map fazendo 3 = x e y=2(3 índice do array). A funcion xpto tem o return 3*2 = 6;

Para a = 4 temos o map fazendo 4 = x e y=3(4 índice do array). A funcion xpto tem o return 4*3 = 12;

Para a = 5 temos o map fazendo 5 = x e y=4(5 índice do array). A funcion xpto tem o return 5*4 = 20;

O map recebe de array, joga em uma função para calcular o produto de x*y e retorna para b o array de [0,1,6,12,20]

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo