我有一些代码可以输出带有键值对的对象。像这样:
{"a" : "1", "b" : "2", "c" : "3"}
我想改为将输出更改为此:
[{"a" : "1"}, {"b" : "2"}, {"c" : "3"}]
我一直在搞怪Object.entries(),Object.assign()和Array.map()。我现在已经花了很多时间,所以我认为是时候寻求帮助了。
初始数据来自req.query,然后我将其转换为:
{a: "1", b: "2", c: "3"}
进入
{"x.a": "1", "x.b": "2", "x.c": "3"}
这最终将成为mongoDB查询。
以下是我到目前为止所拥有的。
let obj = Object.entries(req.query);
obj = obj.map(([key, val]) => ["x."+ key, val]);
let newobj = Object.assign(...obj.map(([k, v]) => ({ [k]: v })));
给出:
{"x.a": "1", "x.b": "2", "x.c": "3"}
所以,按照我最初的问题。如何将其转换为:
[{"x.a" : "1"}, {"x.b" : "2"}, {"x.c" : "3"}]
答案 0 :(得分:2)
您可以使用Object.entries
和map
let obj = {
"a": "1",
"b": "2",
"c": "3"
}
let final = Object.entries(obj).map(([k, v]) => ({
[`x.${k}`]: v
}))
console.log(final)
如果您只想使用密钥而不是x.a
,则可以简单地使用
[k] : v