Какой самый быстрый способ переименовать все имена свойств в объекте Javascript? - PullRequest
0 голосов
/ 28 февраля 2019

Скажем, у меня есть объект, который выглядит следующим образом:

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

И я хочу что-то вроде этого, полученное из a:

const b = {
   something_prop1: "val1",
   something_prop2: "val2",
   something_prop3: "val3",
   something_prop4: "val4",
}

Есть ли способ достичьэто без необходимости создания промежуточного массива ключей или запуска цикла for или foreach?

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Вот пример с reduce, если вы не хотите использовать for или 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 голосов
/ 28 февраля 2019

Вы можете отобразить новые объекты и построить отдельный объект с Object.assign и синтаксисом распространения ....

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 голосов
/ 28 февраля 2019

Вы можете сделать:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...