我收到以下形式的请求:
req = {
"id": ["1","2"],
"values": ["fruit", "vegies"]
}
我想发送如下响应:
res = {
"idMap": {
"1": ["fruit", "veggies"],
"2": ["fruit", "veggies"]
}
}
我尝试使用 map 函数,但值是[Array],而不是["fruits", "veggies"]。我附上以下代码:
const values = req.values
const id = req.id.map((ids) => {
const idmap = {
[ids]: values
}
return idmap;
});
req = {
"idMap": id
}
帮我解决这些问题。提前致谢..
最佳答案
您应该使用reduce
来创建对象 - map
返回一个数组。
const req = {
"id": ["1", "2"],
"values": ["fruit", "vegies"]
};
const res = {
idMap: req.id.reduce((a, c, i) => (a[c] = [...req.values], a), {})
};
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }
您还可以循环遍历数组并分配结果对象的属性:
const req = {
"id": ["1", "2"],
"values": ["fruit", "vegies"]
};
let res = {
idMap: {}
};
let values = req.values;
req.id.forEach((id, index) => res.idMap[id] = [...values]);
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }
关于javascript - 如何在javascript中将数组值作为键值分配给对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555962/