1
resposta

fiz desta maneira

const list1 = [3, 15, 25, 30, 45, 50]
const list2 = [10, 20, 22, 28, 33, 35, 40]

let newList = new Array()


let lista = 0
let listb = 0
for (let i = 0; i < list1.length + list2.length; i++) {

  console.log(list1[lista], listb[i],"corrent value")
  if (list1[lista] < list2[listb] || list1[listb] == undefined) {
    list1[lista] &&
    newList.push(list1[lista])
    lista ++
  }else{
    list2[listb] &&
    newList.push(list2[listb])
    listb ++
  }
}

console.log("Added final", newList)
1 resposta

Oii, Flávio! Tudo bem?

Parabéns por estar praticando o conteúdo passado durante a aula! É uma ótima prática para solidificar ainda mais as técnicas.

Flavio, o seu código está muito bom, mas há um detalhe que você pode melhorar para que ele fique mais eficiente.

No seu console.log é passado o listb[i], porém listb é uma variável e não um array, o que pode nos retornar um erro. O recomendado é adicionarmos o list2[listb] para que o código retorne o esperado.

Veja como ficaria o código com a correção:

const list1 = [3, 15, 25, 30, 45, 50]
const list2 = [10, 20, 22, 28, 33, 35, 40]

let newList = new Array()


let lista = 0
let listb = 0
for (let i = 0; i < list1.length + list2.length; i++) {

  console.log(list1[lista], list2[listb],"corrent value")
  if (list1[lista] < list2[listb] || list1[listb] == undefined) {
    list1[lista] &&
    newList.push(list1[lista])
    lista++
  }else{
    list2[listb] &&
    newList.push(list2[listb])
    listb++
  }
}

console.log("Added final", newList)

Espero ter ajudado. Continue se empenhando nos estudos e qualquer dúvida, não hesite em recorrer ao fórum.

Bons estudos, Flávio!