Home > database >  How to prevent keep add string to the object in JavaScript?
How to prevent keep add string to the object in JavaScript?

Time:04-12

When click on run button each time Mi string adding how to prevent Result : 1000MiMi Expected result multiple time click : 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>)
    }

CodePudding user response:

If your trying to prevent item.size from repeatedly adding 'Mi' onto the end, trying using the .endsWith() method.

const handleSubmit = () => {
    memory.map((item) => {
      if (!(item.size "").endsWith("Mi")) {
          const manju =  item.size   'Mi';
      }
      item.size = manju;
      return item;
    });
    console.log(memory);
  }

CodePudding user response:

your problem is here

memory.map((item) => {
          const manju =  item.size   'Mi'
          item.size = manju 
          return item
        })

you are overwriting the value of item

instead you have to return a new value

like this

memory.map((item) => {
   return {size: item.size   'Mi'}
})

CodePudding user response:

Since you're not using the result of map() for anything, you should use forEach() instead.

To prevent multiple Mi suffixes, check if it has already been added.

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();

  • Related