Search code examples
reactjsarraysjavascript-objects

How to trim space from a property of an object present in an array of object?


I have an array of objects with me: Array of objects

Now, I want to change the property name of an particular object(not the value). For ex: My object has attribute PRODUCT NAME:'BAJAJ Brahmi Amla Hair Oil 300 ml' in my data.

Required result: PRODUCT_NAME:'BAJAJ Brahmi Amla Hair Oil 300 ml'

So, how can I replace the space in my property to an '_'.

Language used: React.js

I tried this function but it's not working for my desired result:

const productList = () => {
for (let i = 0; i < data.length; i++) {
  let obj = data[i];
  console.log(obj);
  Object.keys(obj).forEach((key) => {
    var replacedKey = key.trim().toUpperCase().replace(/\s\s+/g, "_");
    if (key !== replacedKey) {
      obj[replacedKey] = obj[key];
      delete obj[key];
    }
  });
 }
};

Can somebody explain why is this not working ?


Solution

  • can you please change replace(/\s\s+/g, "_") to replace(" ", "_") and then try, as you can see the below code

    const productList = () => {
    for (let i = 0; i < data.length; i++) {
      let obj = data[i];
      console.log(obj);
      Object.keys(obj).forEach((key) => {
        var replacedKey = key.trim().toUpperCase().replace(" ", "_");
        if (key !== replacedKey) {
          obj[replacedKey] = obj[key];
          delete obj[key];
        }
      });
     }
    };
    

    const string = "PRODUCT NAME"
    console.log(string.trim().toUpperCase().replace(" ", "_"))