我有一个包含某种JSON数据的变量,
var blogData = [
{
"blogTitle":"Bangladesh",
"imagePath":"/img/blog/bangladesh.jpg"
},{
"blogTitle":"India",
"imagePath":"/img/blog/india.jpg"
}
]
我想要一个新的数组 titleFilter ,例如:
var titleFilter = [
Bangladesh : "/img/blog/bangladesh.jpg",
India : "/img/blog/india.jpg"
]
因此,为此,我尝试了以下方法:
var titleFilter = [];
for (var i = 0; i < blogData.length; i++) {
titleFilter[blogData[i].blogTitle] = blogData[i].imagePath;
}
问题是,我将titleFilter数组获取为:
var titleFilter = [
Bangladesh : "",
India : ""
]
如果有人帮助我解决这个问题,那就太好了。
答案 0 :(得分:1)
尝试一下:
const blogData = [
{
"blogTitle":"Bangladesh",
"imagePath":"/img/blog/bangladesh.jpg"
},{
"blogTitle":"India",
"imagePath":"/img/blog/india.jpg"
}
];
const result = blogData.reduce((acc, ele)=> (acc[ele.blogTitle] = ele.imagePath , acc),{});
console.log(result);
答案 1 :(得分:0)
我不确定您在寻找什么,但是可以使用这样的地图来实现。
var map = new Object(); // or var map = {};
map[blogData[i].blogTitle] = blogData[i].imagePath;
答案 2 :(得分:0)
var blogData = [
{
"blogTitle":"Bangladesh",
"imagePath":"/img/blog/bangladesh.jpg"
},
{
"blogTitle":"India",
"imagePath":"/img/blog/india.jpg"
}
]
var titleFilter = {}
blogData.forEach( x => titleFilter[x.blogTitle] = x.imagePath )
使用此代码,您将在titleFilter中获得所需的结果