Tengo una respuesta de API que me da varios objetos y dentro de ese objeto tengo una matriz llamada "empleados", "empleados" tiene un elemento llamado "avis".
Quiero seleccionar el objeto cuando el valor dentro de employee>recrutments>avis="accepter" .
toda la matriz dentro del objeto debe obtener el valor "avis"="aceptador" para seleccionar ese objeto.
Si uno de los empleados tiene un valor diferente de "avis", entonces el objeto es declinar.
Traté de mapear la respuesta y usé todos los métodos de JavaScript
getJuction():void{ this.getAlloff.getjuction() .subscribe(data => { console.log(data); this.test = data.map(function(element:any){ return element.employes.map((employe:any)=>employe.recrutements.avis === 'accepter').every((emel:any) => emel === true ) ; }); console.log(this.test) var test2 = data.filter((employe:any)=>employe); console.log(test2) // var test =data.flat(); // console.log(test) }, error => console.log(error)); }
Este es el resultado que obtengo.
El único objeto que tiene "aceptador" para cada valor se vuelve verdadero
this.getAlloff.getjuction() .subscribe(data => { //this.result some property to store value this.result = data.map( (item : any) => { return item.employees.filter((item : any)=> { return item.recrutements.alves == 'accepter' }) }) }
prueba esto si obtienes varios objetos en los datos
Encontré la solución, simplemente cambié el método de "mapa" a "filtro".
Este era el código anterior:
getJuction():void{ this.getAlloff.getjuction() .subscribe(data => { this.test = data.map(function(element:any){ return element.employes.map((employe:any)=>employe.recrutements.avis === 'accepter').every((emel:any) => emel === true ) ; }); }, error => console.log(error)); }
Este es el nuevo código:
getJuction():void{ this.getAlloff.getjuction() .subscribe(data => { this.test = data.filter(function(element:any){ return element.employes.map((employe:any)=>employe.recrutements.avis === 'accepter').every((emel:any) => emel === true ) ; }); }, error => console.log(error)); }