Как переименовать свойство объекта в javascript? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть вложенный объект. Я хочу переименовать свойства объекта.

  {
     0: {value: "can_view"},
     1: {value: "can_create"}
  }

Мой вывод будет:

  {
     user_can: "can_view",
     user_view: "can_create"
  }

Ответы [ 2 ]

5 голосов
/ 26 марта 2020

Вы можете сделать это в три шага:

  • Получить записи, используя Object.entries()
  • Использовать map() и заменить каждую клавишу на желаемое значение
  • Преобразовать его обратно в объект, используя Object.fromEntries()

const obj = {
  0: {value: "can_view"},
  1: {value: "can_create"}
}
const res = Object.fromEntries(Object.entries(obj).map(([k, v]) => [v.value, v.value]));
console.log(res)
1 голос
/ 26 марта 2020

Улучшение ответа Махер Али. Вот вам go:

const obj = {
      0: {value: "can_view"},
      1: {value: "can_create"}
    }
    var res = Object.fromEntries(Object.entries(obj).map(([k, v]) => [v.value.replace("can", "user"), v.value]));
    
    var myResutls = JSON.stringify(res).replace(/"(\w+)"\s*:/g, '$1:');
    console.log(myResutls);
    alert(myResutls)

ВЫХОД:

  {
   user_view: "can_view",
   user_create: "can_create"
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...