Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

120
Visualizações
Anidado para... de iterar sobre el primer elemento de matriz

Tengo una estructura de datos como esta

 const array = [ [["first_name" , "First"], ["image" , "image"]], [["email" , "email"]], [["last_name","last_name"]], [["password" , "password"], ["password", "password"]] ]

La implementación de mi iterador es

 let arr = array.values(); let obj = { [Symbol.iterator]: function () { return { next() { for (const iterator of arr) { for (let [, value] of iterator) { return { done: false, value, }; } } return { done: true, }; }, }; }, }

Pero cuando lo itero [...obj]

Obtengo solo el primer elemento de la matriz 2D

El resultado que obtengo es ["First" , "email" , "last_name" , "password"]

Salida esperada ["First" , "image" , "email" , "last_name" , "password", "password"]

Anidado para ... en iterar solo el primer elemento de la matriz anidada

Nota: - La solución anterior funciona bien con la función de generador Symbol.Iterator

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Al igual que la respuesta de Nenad Vracar, dado que se devuelve desde la instrucción de bucle for interna, no repite todas las matrices internas, solo la matriz externa se repite y finaliza.

Los estados individuales deben poder guardarse para implementar lo que desea con Symbol.iterator solo sin usar Generator .

 const array = [ [["first_name" , "First"], ["image" , "image"]], [["email" , "email"]], [["last_name","last_name"]], [["password" , "password"], ["password", "password"]] ]; const obj = { [Symbol.iterator]: () => { return { stack: [...array], target: [], next() { if (!this.target.length && !this.stack.length) return { done: true, value: undefined, } if (!this.target.length) this.target = this.stack.shift(); return { done: false, value: this.target.shift()[1], }; }, } } }; console.log([...obj]); // ['First', 'image', 'email', 'last_name', 'password', 'password']
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda