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

205
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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