javascript - 创建要发送到 API 的对象的问题

标签 javascript jquery arrays object

我试图想出这种格式的东西:

"hours":{
      "<default>":{
        "mon_open_close":[...],
        "tue_open_close":[...],
        "wed_open_close":[...],
        "thu_open_close":[...],
        "fri_open_close":[...],
        "sat_open_close":[...],
        "sun_open_close":[...],
      }
    }

我有一堆这样定义的变量(一周中的每一天一个):

var wed_open_close_hours = [operationTime[2].timeFrom+'-'+operationTime[2].timeTill]; 

这会产生类似于:[10:00-16:00]

然后有这个数组:

 $all_hours_text = ['mon_open_close', 'tues_open_close' ,'wed_open_close' , 'thu_open_close' , 'fri_open_close' , 'sat_open_close' ,'sun_open_close'];

我遇到的问题是如何将它们组合在一起并创建这个单一对象。有人可以指出我正确的方向吗?

最佳答案

所以如果你设置

var wed_open_close_hours = [operationTime[2].timeFrom+'-'+operationTime[2].timeTill]; 

在全局范围内,它也将作为

window.wed_open_close_hours;

否则,如果您执行类似 eval("wed_open_close_hours") 的操作,它就可用; 所以你可以做

all_hours_text.map(function(varname) {
      if(window[varname+"_hours"]) {

          result["hours"]["<default>"][varname] = window[varname+"_hours"];
      }
})

 all_hours_text.map(function(varname) {

          result["hours"]["<default>"][varname] = eval(varname+"_hours");

})

但是,无论是在全局范围内设置变量还是使用 eval 都不是推荐的做法。您真的应该考虑将代码分解为:

var output = {}
output.hours = {}
output.hours["<default>"] = {}

.,..
output.hours["<default>"].wed_open_close = [operationTime[2].timeFrom+'-'+operationTime[2].timeTill];    

关于javascript - 创建要发送到 API 的对象的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450883/

相关文章:

javascript - 如何将更改应用到 JavaScript 数组中的数据对象?

JavaScript:为什么这两个看似相同的程序的控制台输出略有不同?

php - 验证所有国家/地区的身份证号码

javascript - 尝试使用 jquery 使图像旋转

javascript - Blueimp Jquery 文件上传 : Doesn't show thumbnail preview image

javascript - 使用node中的webpack作为commonjs模块使Kafka.js外部依赖

javascript - getJSON 不显示文件路径

c - 仅对数组中的奇数或偶数进行排序

python - 通过 AJAX 将 Python 数组发送到 django 模板

javascript - 如何查找值是否与 Javascript 中的数组中的值之一匹配