我需要在看起来像这样的对象中的所有值上加上单引号:
{name: "testUser", type: "regular"}
该对象需要如下所示:
{name: "'testUser'", type: "'regular'"}
我正在使用Object.values
来实现:
Object.values(targetObject).map(value => value = `'${value}'`)
除了没有完全更新targetObject
。实现这一目标的正确方法是什么?
答案 0 :(得分:2)
要更新原始对象,您需要密钥。使用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 :(得分:1)
您可以使用Object.entries
遍历对象中的所有条目并更新它们:
const obj = {name: "testUser", type: "regular"};
for (let [key, value] of Object.entries(obj)) {
obj[key] = `'${value}'`;
}
console.log(obj);
答案 2 :(得分:1)
您可以for..in
遍历对象的属性。
const obj = {name: "testUser", type: "regular"}
for (let k in obj){
obj[k] = `'${obj[k]}'`
}
console.log(obj)
答案 3 :(得分:0)
您可以映射新对象并将其收集到单个对象中。
var object = { name: "testUser", type: "regular" },
updated = Object.assign(...Object.entries(object).map(([k, v]) => ({ [k]: `'${v}'` })));
console.log(updated);