Как вернуть измененный объект после обновления всех значений в нем? - PullRequest
2 голосов
/ 26 марта 2019

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

{name: "testUser", type: "regular"}

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

{name: "'testUser'", type: "'regular'"}

Я использую Object.values для достижения этой цели:

Object.values(targetObject).map(value => value = `'${value}'`)

За исключением того, что это не совсем обновление targetObject. Каков будет правильный путь для достижения этого?

Ответы [ 4 ]

2 голосов
/ 26 марта 2019

Для обновления исходного объекта вам понадобится ключ. Используйте Object.entries(), чтобы получить ключ и значение, итерируйте с Array.forEach(), и каждый ключ с новым значением:

const targetObject = {name: "testUser", type: "regular"}

Object.entries(targetObject) // get an array of [key, value] pairs
  .forEach(([k, v]) => targetObject[k] = `'${v}'`) // update the original object keys

console.log(targetObject)
1 голос
/ 26 марта 2019

Вы можете for..in перебирать свойства объекта.

const obj = {name: "testUser", type: "regular"}

for (let k in obj){
 obj[k] = `'${obj[k]}'`
}

console.log(obj)
1 голос
/ 26 марта 2019

Вы можете использовать Object.entries, чтобы перебрать все записи в объекте и обновить их:

const obj = {name: "testUser", type: "regular"};

for (let [key, value] of Object.entries(obj)) {
  obj[key] = `'${value}'`;
}

console.log(obj);
0 голосов
/ 26 марта 2019

Вы можете сопоставить новые объекты и собрать их в один объект.

var object = { name: "testUser", type: "regular" },
    updated = Object.assign(...Object.entries(object).map(([k, v]) => ({ [k]: `'${v}'` })));

console.log(updated);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...