Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传递参数以构建JSON对象_Javascript_Node.js - Fatal编程技术网

Javascript 传递参数以构建JSON对象

Javascript 传递参数以构建JSON对象,javascript,node.js,Javascript,Node.js,如何将子类别作为函数的参数传入?我有一个可行的解决方案,只需传入参数,然后让一个开关执行工作,使JSON.subcategory从正确的位置读取。然而,我觉得在使它更具功能性或OO友好性方面,我缺少了一些东西 因此,有没有一种方法可以让传递的参数理解它是一个变量,而不是对象文字 json = { weather: ["rain", "snow","sun"], news: ["events", "local","world"] } messageBuilder(weather) fu

如何将子类别作为函数的参数传入?我有一个可行的解决方案,只需传入参数,然后让一个开关执行工作,使JSON.subcategory从正确的位置读取。然而,我觉得在使它更具功能性或OO友好性方面,我缺少了一些东西

因此,有没有一种方法可以让传递的参数理解它是一个变量,而不是对象文字

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));
}

我是否正确使用了这些术语?我试图在谷歌上搜索答案,结果什么也没找到。

只需稍微修改一下代码:

     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']从对象中拉出属性

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

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

const obj={
天气:[“雨”、“雪”、“太阳”],
新闻:[“事件”、“本地”、“世界”]
};
messageBuilder(“天气”);
函数messageBuilder(子目录){
var object=obj[subCat];
log(JSON.stringify(object));

}
您可以调用
messageBuilder(json.weather)
,然后调用
json.stringify(passedVariable)
这里的“子目录”示例是什么?
天气
/
新闻
列表中的项目?@James。天气和新闻是子类别,完整的用例是根据计数调用它们。所以最后一行会变成类似于object[count]@whatkai在这种情况下,
messageBuilder
真的需要了解
json
?为什么不能直接调用
messageBuilder(json.weather)
?或者您是否将子类别作为变量接收?我看不出有必要关闭这里。