es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener una matriz de un valor de columna en una matriz de objetos en Angular 12.

Tengo un proyecto de Angular 12 y quiero recuperar todos los resultados en la columna “artisticBehaviour” (a excepción de aquellos que son NULL o iguales, por ejemplo “Actor, Actor”) en la tabla de Usuarios.

Función en TypeScript que llama a todos los usuarios de la tabla Usuarios.

allArtistsSet() {
    this.userData.allArtists(this.offset).pipe(
      map((data: any) => {
        if (data.success) {
            this.allArtists = data.artistsFeed;

           this.creativenessArtists = this.allArtists.artisticBehaviour;
          //this.creativenessArtists = this.allArtists.filter(data.artisticBehaviour)
           //this.creativenessArtists = [...this.allArtists.artisticBehaviour];
           //return this.creativenessArtists.filter(allArtists => allArtists.artisticBehaviour === this.creativenessArtists);
        }
      })
    ).subscribe()
  }

HTML.

<select>
            <option disabled="">Comportamiento creativo</option>
            <option>Creatividad</option>
            <option *ngfor="let creative of creativenessArtists" value="{{creative}}">{{creative}}</option>
            </select>
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para recuperar todos los resultados en la columna artisticBehaviour, excepto aquellos que son NULL o iguales (por ejemplo, Actor, Actor), puede modificar la función allArtistsSet() de la siguiente manera:

    allArtistsSet() {
      this.userData.allArtists(this.offset).pipe(
        map((data: any) => {
          if (data.success) {
            this.allArtists = data.artistsFeed;
            // filtrar nulos y comportamientos artísticos duplicados
            const filteredArtisticBehaviour = new Set(this.allArtists
              .map(artist => artist.artisticBehaviour)
              .filter(behaviour => behaviour !== null && behaviour !== 'Actor')
            );
            this.creativenessArtists = [...filteredArtisticBehaviour];
          }
        })
      ).subscribe();
    }
    

    Este código utiliza las funciones map y filter para extraer y filtrar los valores de artisticBehaviour de allArtists, y luego convertir el array resultante en un Set para eliminar duplicados. También elimina cualquier instancia de NULL o ‘Actor’. Finalmente, el Set se convierte en un array y se asigna a creativenessArtists.

    En tu HTML, puedes usar ngFor para iterar sobre los comportamientos artísticos filtrados y mostrarlos como opciones en un elemento select:

    <select>
      <option disabled="">Comportamiento Creativo</option>
      <option>Creatividad</option>
      <option *ngfor="let creative of creativenessArtists" value="{{creative}}">{{creative}}</option>
    </select>
    

    Esto mostrará una lista de comportamientos creativos para los usuarios en el elemento select, excluyendo NULL y ‘Actor’.

Comments are closed.