我有一个从api返回的数据,如下所示
var data = {
"entities": [
{
"documentbody": Base64String,
"filename": "http-status-code-cheat-sheet1.png",
"filesize": 204326,
"mimetype": "image/png",
},
{
"documentbody": null,
"filename": "http-status-code-cheat-sheet2221.png",
"filesize": 204326,
"mimetype": "image/png",
}
]
}我想创建一个新的数组,如下所示
var images = [
{ imgsrc:(documentBodyValue),imgDesc:(fileNameValue)},
{imgsrc:(documentBodyValue),imgDesc:(fileNameValue)}
]我尝试过使用映射函数let result = data.entities.map(a => a.filename);,但这只会将值返回到一个新数组中。如何从原始数组中创建具有不同键和值的新数组?
发布于 2019-08-16 04:01:32
只需从map中为每个项目返回一个新对象即可。
let result = data.entities.map(a => ({imgsrc: a.documentbody, imgDesc: a.filename})); 发布于 2019-08-16 04:01:14
你的尝试几乎是正确的。您可以使用{key: value, ...}语法来映射到obj而不是值。例如:
var data = {
"entities": [
{
"documentbody": 'Base64String',
"filename": "http-status-code-cheat-sheet1.png",
"filesize": 204326,
"mimetype": "image/png",
},
{
"documentbody": null,
"filename": "http-status-code-cheat-sheet2221.png",
"filesize": 204326,
"mimetype": "image/png",
}
]
};
let result = data.entities.map(a => ({imgsrc: a.documentbody, imgDesc: a.filename}));
console.log(result);
发布于 2019-08-16 04:00:48
var images = []
data.entities.forEach(entry => {
images.push({imgsrc: entry.documentbody, imgDesc: entry.filename})
})https://stackoverflow.com/questions/57515477
复制相似问题