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

184
Visualizações
¿Cómo evitar elementos duplicados en una lista desplegable para mostrar?

Me gustaría crear una lista desplegable y recuperar los elementos de un servicio web.

Mi problema es que me gustaría evitar mostrar elementos duplicados porque tengo 9999 elementos.

Aquí está el archivo JSON .

ingrese la descripción de la imagen aquí

¿Crees que es posible hacer esto? Porque, no tengo idea de cómo programar esto?

El método de visualización es este:

 private getDropDownList(): void { this.service.getDropDownList().pipe( takeUntil(this.unsubscribe$) ).subscribe(res => { if (res.RETURNCODE === ApiResponseCodeEnum.Ok) { this.corporateLines = res.TITRE.map( corporateLine => { return { placelabel: corporateLine.PLACELABEL, } } ); } }); }

componente.corporativo.ts

 export class CorporateComponent implements OnInit, OnDestroy { private unsubscribe$ = new Subject<void>(); corporateLines: Corporate[] = []; constructor(private service: CorporateService, private router: Router) { } ngOnInit(): void { this.getDropDownList(); } ngOnDestroy(): void { this.unsubscribe$.next(); this.unsubscribe$.complete(); } private getDropDownList(): void { this.service.getDropDownList().pipe( takeUntil(this.unsubscribe$) ).subscribe(res => { if (res.RETURNCODE === ApiResponseCodeEnum.Ok) { this.corporateLines = res.TITRE.map( corporateLine => { return { placelabel: corporateLine.PLACELABEL, } } ); } }); } }

respuesta.corporativa.ts

 import { ApiResponse } from "src/shared/types/api.response"; export interface CorporateResponse extends ApiResponse { TITRE: { PLACELABEL: string; }[]; }

corporativo.ts

 export interface Corporate { placelabel: string; }

componente.corporativo.html

 <div class="row row-cols-3 pt-3"> <div class="col text-end"> <label for="filterForMarkets" class="form-label">Label</label> </div> <div class="col-4"> <select> <option *ngFor="let line of corporateLines">{{line.placelabel }}</option> </select> </div> </div>

Gracias

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

0

Teniendo en cuenta que todos sus datos están contenidos en "TITRE" : [...] que en realidad es una matriz, podría usar la solución de Eliminar elementos duplicados de una matriz , que usa la función de filtro para devolver una matriz que contiene solo elementos únicos.

Por ejemplo, en tu caso podrías hacer algo como esto:

 var unique = res.TITRE.filter(function(elem, index, self) { return index === self.indexOf(elem); }) this.corporateLines = unique.map( corporateLine => { return { placelabel: corporateLine.PLACELABEL, } } );
about 4 years ago · Juan Pablo Isaza Relatório

0

Creo que podrías usar el operador distinto así:

 private getDropDownList(): void { this.service.getDropDownList().pipe(distinct(), takeUntil(this.unsubscribe$) ).subscribe(res => { if (res.RETURNCODE === ApiResponseCodeEnum.Ok) { this.corporateLines = res.TITRE.map( corporateLine => { return { placelabel: corporateLine.PLACELABEL, } } ); } }); }
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