Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

333
Views
Si el objeto ya está en la matriz, quiero eliminar el objeto anterior y agregar el nuevo

Tengo una matriz de objetos y cuando el usuario selecciona una opción, agrega un objeto a la matriz. Quiero escribir un código para verificar si esta clave de objeto ya está en uno de los objetos de la matriz para reemplazar el anterior con el nuevo objeto. usuario seleccionado de la opción proporcionada ingrese la descripción de la imagen aquí

lo que significa que esta matriz no puede tener dos objetos con la misma clave, como

iMac 2021-Touch ID in keyboard

alguna solución estoy atascado aquí

editar:

 attribute.items.map((item, index2) => { return ( <div key={index2}> <input onChange={this.handleChange} type="radio" name={`${this.props.currentItem.name}-${attribute.name}`} value={item.value} /> </div>;

cuando el usuario selecciona la opción de uno de estos atributos, se agrega a una matriz que se enviará al carrito con el artículo

 handleChange = (e) => { const { name, value } = e.target; this.setState((prevState) => ({ selectedAttribute: [ ...prevState.selectedAttribute, { [name]: value } ], })); };

Estoy tratando de hacer algo como esto para evitar agregar dos o más objetos para el mismo atributo

 let alreadyAdded = this.state.selectedAttribute.some((element) => this.state.selectedAttribute.indexOf(element) !== -1);

si el usuario selecciona los atributos desde la primera vez, no habrá ningún problema; de lo contrario, si el usuario decidió cambiar el atributo, se agregará con el nuevo valor sin eliminar el anterior, la matriz de atributos tendrá más valores de los que debería, lo que causará un error

como verás en esta imagen

ingrese la descripción de la imagen aquí

[2]: https://i.stack.imgur.com/9OQPb.png

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede usar el método array find o findIndex y el objeto hasOwnProperty algo así:

 const items = [ { key1: value1 }, { key2: value2 }, ]; const neededKey = 'key1'; const item = items.find((item) => item.hasOwnProperty(neededKey));

find : luego, si se encuentra - actualizar, de lo contrario insertar

findIndex : luego, si se encuentra - splice , de lo contrario inserte

pero si en su caso solo se usa 1 clave en cada elemento, ¿por qué no solo usar objetos como:

 const items = { key1: value1, key2: value2, }

y actualizarlo directamente?

si este es el estado de reacción, puede usar algo como:

 setState({ ...oldState, [neededKey]: neededValue, })

para actualizar tu estado

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!