传递参数以构建JSON对象

时间:2018-12-08 20:08:18

标签: javascript node.js

如何将subCategory作为函数的参数传递?我有一个可行的解决方案,只是传入参数,然后进行切换以使JSON.subcategory从正确的位置读取。但是,我觉得在使此功能更加实用或面向对象友好方面缺少一些东西。

因此,有一种方法可以使传递的参数将其理解为变量,而不是对象文字。

json = {
  weather: ["rain", "snow","sun"],
  news: ["events", "local","world"]
}

messageBuilder(weather)

function messageBuilder(passedVariable){
  var object = json.passedVariable;
  // object = json.weather
  console.log(JSON.stringify(object));
}

我还正确使用了这些术语吗?我试图在Google上寻找答案,但最终没有真正找到任何东西。

2 个答案:

答案 0 :(得分:1)

只需将对象属性键名称(子类别)作为字符串传递,并使用括号表示法从函数中的数据中选择它即可。

注意:这是一个对象,而不是JSON,因此在示例中已将其命名为这样。

const obj = {
  weather: ["rain", "snow", "sun"],
  news: ["events", "local", "world"]
};

messageBuilder('weather');

function messageBuilder(subCat){
  var object = obj[subCat];
  console.log(JSON.stringify(object));
}

答案 1 :(得分:0)

只需稍微修改一下代码:

     json = {
            weather : [
                "rain", "snow","sun"
            ],
            news : [
                "events", "local","world"
            ]

        }

        messageBuilder('weather');

        function messageBuilder(passedVariable){

        var object = json[passedVariable];
             // object = json.weather
            console.log(object);

        }

首先,您应该将参数作为字符串传递。然后只需使用object ['property']

从对象中拉出属性