Cuando haga clic en el botón Ejecutar cada vez que Mi cadena agregue cómo evitar Resultado: 1000MiMi Resultado esperado, haga clic varias veces: 1000Mi
function App() { let memory = [{size:1000}] const handleSubmit = () =>{ memory.map((item) => { const manju = item.size + 'Mi' item.size = manju return item }) console.log(memory) } return (<div> <button onClick={handleSubmit}>Run</button> </div>) }Si está tratando de evitar que item.size agregue repetidamente 'Mi' al final, intente usar el método .endsWith() .
const handleSubmit = () => { memory.map((item) => { if (!(item.size+"").endsWith("Mi")) { const manju = item.size + 'Mi'; } item.size = manju; return item; }); console.log(memory); }tu problema esta aqui
memory.map((item) => { const manju = item.size + 'Mi' item.size = manju return item })está sobrescribiendo el valor del artículo
en su lugar, debe devolver un nuevo valor
como esto
memory.map((item) => { return {size: item.size + 'Mi'} })Como no está usando el resultado de map() para nada, debe usar forEach() en su lugar.
Para evitar múltiples sufijos Mi , verifique si ya se ha agregado.
const handleSubmit = () => { memory.forEach((item) => { if (!(item.size + "").endsWith("Mi")) { item.size += 'Mi'; } }); console.log(memory); } const memory = [{size: 1000}] handleSubmit(); memory.push({size: 500}); handleSubmit();