Soy nuevo en TS Tengo una matriz de datos que se ve así
const AllJobs = [ { title: Teller, salary: ["Hourly"], industries: [ "Accounting", "Banking", "Data" ] }, { title: Scientist, salary: ["Yearly"], industries: [ "Biology", "Chemicals", "Science" ] }, { title: Artist, salary: ["Hourly"], industries: [ "Design", "Paint", "Color" ] }, ]; let desiredSkills = ["Design","Accounting","Data"];
Quiero recorrer los datos en las "industrias" en la matriz AllJobs y verificar si alguno de esos valores coincide con alguno de los valores en las Habilidades deseadas. Si no hay valores coincidentes, filtre ese objeto. No sé si estoy haciendo esto bien en absoluto.
Resultados deseados:
const AllJobs = [ { title: Teller, salary: ["Hourly"], industries: [ "Accounting", "Banking", "Data" ] }, { title: Artist, salary: ["Hourly"], industries: [ "Design", "Paint", "Color" ] }, ];
Aquí está mi código anterior. Eso actualmente no está funcionando.
const getSuggested = (item: string) => { const filterIndustry = this.allJobs.filter((x:any) => x['industries'].every((y: string | any[])=> y.includes(item))); }; this.desiredIndustries.forEach(getSuggested);
yo tambien he probado
const getSuggested = (item: string) => { let k = item; const data = this.allJobs.filter((item: { industries: any }) => item.industries == k); console.log(data); }; this.desiredIndustries.forEach(getSuggested);
Realmente no necesita TypeScript aquí, así que aquí hay una solución JS para usted:
const AllJobs = [{ title: 'Teller', salary: ['Hourly'], industries: ['Accounting', 'Banking', 'Data'], }, { title: 'Scientist', salary: ['Yearly'], industries: ['Biology', 'Chemicals', 'Science'], }, { title: 'Artist', salary: ['Hourly'], industries: ['Design', 'Paint', 'Color'], }, ]; let desiredSkills = ['Design', 'Accounting', 'Data']; const result = AllJobs.filter(({ industries }) => industries.find((industry) => desiredSkills.includes(industry))); console.log(result);
Debería ser fácil de traducir a TS. ¡Espero eso ayude!