数组赋值后为空

时间:2019-06-26 16:08:04

标签: javascript arrays json

我有一个包含某种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 : ""
                  ]

如果有人帮助我解决这个问题,那就太好了。

3 个答案:

答案 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中获得所需的结果