Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

204
Vistas
Eliminar valor de una matriz anidada en un objeto

Tengo un problema con mi código. Actualmente tengo algunos datos como el siguiente;

 users: [ { name: 'bolu', features: ['Tall'], }, { name: 'cam', features: ['Bearded', 'Short'], }, ], };

Lo que estoy tratando de hacer es eliminar/eliminar una sola característica, por ejemplo, si paso 'breve' en mi acción redux. Me gustaría que (el texto 'Corto') se elimine de la matriz de características. Actualmente tengo mi acción redux configurada de esta manera:

 export interface UsersDataState { name: string, features: Array<string>, } export interface UsersState { users: UsersDataState[]; } const initialState: UsersState = { users: [], }; export const usersSlice = createSlice({ name: 'users', initialState, reducers: { removeUser: (state, action: PayloadAction<string>) => { const removedUsers = state.users.filter((user) => user.features.indexOf(action.payload)); state.users = removedUsers; }, }, });

Así que aquí estoy pasando el valor en ( action.payload es el valor que se pasa). Cuando se envía esta acción, quiero eliminar solo la palabra que se pasa de la matriz de características. Espero que esto sea más claro ahora.

Esto no funciona por alguna razón y no puedo entender por qué. Cualquier ayuda sería apreciada por favor, gracias.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Debe copiar los objetos en users y filtrar en las features .

Aquí un ejemplo:

 var users = [{ name: 'bolu', features: ['Tall'], }, { name: 'cam', features: ['Bearded', 'Short'], }]; const payload = "Short"; const newUsers = users.map(user => ({ ...user, features: user.features.filter(f => f != payload) })); console.log(newUsers);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Actualmente está filtrando la matriz de users , pero debería filtrar la matriz de features anidadas.

Prueba esto

 const removedUsers = state.users.map(user => { return {...user, features: user.features.filter(feature => feature !== action.payload)}; })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda