What's the quickest way to rename all property names in a Javascript object?

后端 未结 3 403
不知归路
不知归路 2021-01-29 11:44

Say, I have an object that looks like this:

const a = {
  prop1: \"val1\",
  prop2: \"val2\",
  prop3: \"val3\",
  prop4: \"val4\",
}

And I wan

相关标签:
3条回答
  • 2021-01-29 12:20

    You could map new objects and build a single object with Object.assign and spread syntax ....

    const
        a = { prop1: "val1", prop2: "val2", prop3: "val3", prop4: "val4" },
        b = Object.assign(...Object.entries(a).map(([k, v]) => ({ ['something_' + k]: v })));
    
    console.log(b);

    0 讨论(0)
  • 2021-01-29 12:22

    You can do:

    const a = {
      prop1: "val1",
      prop2: "val2",
      prop3: "val3",
      prop4: "val4",
    };
    const b = {};
    Object.keys(a).forEach(k => b[`something_${k}`] = a[k]);
    
    console.log(b);

    0 讨论(0)
  • 2021-01-29 12:33

    Here is an example with reduce if your point is not to use for or forEach.

    const a = {
      prop1: "val1",
      prop2: "val2",
      prop3: "val3",
      prop4: "val4",
    }
    
    const transformKeys = obj => Object.keys(obj).reduce((acc, key) => (acc[`something_${key}`] = obj[key], acc), {});
    
    const b = transformKeys(a);
    
    console.log(b);

    0 讨论(0)
提交回复
热议问题