【问题标题】:Convert two array into JSON object将两个数组转换为 JSON 对象
【发布时间】:2019-03-19 19:23:43
【问题描述】:

我正在尝试从两个数组构建 JSON。一个数组包含 field_name,另一个包含对应 field_name 的 field_value

    var field_name = ["sys_id","country","calendar_integration","user_password","last_login_time"]
var field_value = ["6816f79cc0a8016401c5a33be04be441","United State","Outlook","Password1","2019-03-19 09:48:41"];

预期输出:

output = { "sys_id" : "6816f79cc0a8016401c5a33be04be441",
        "country" : "United State",
        "calendar_integration" : "Outlook",
        "user_password": "Password1",
        "last_login_time": "2019-03-19 09:48:41"
        }

任何人都可以在这里提供帮助,如何在 JavaScript 中实现这一点。

【问题讨论】:

标签: javascript arraylist


【解决方案1】:

你可以使用reduce()来做到这一点。在索引i处设置来自field_name的值作为键,在当前索引处设置为field_value的值

var field_name = ["sys_id","country","calendar_integration","user_password","last_login_time"]
var field_value = ["6816f79cc0a8016401c5a33be04be441","United State","Outlook","Password1","2019-03-19 09:48:41"];

let res = field_name.reduce((ac,a,i) => ({...ac,[a]:field_value[i]}),{});
console.log(res);

你也可以用同样的方式使用forEach()

var field_name = ["sys_id","country","calendar_integration","user_password","last_login_time"]
var field_value = ["6816f79cc0a8016401c5a33be04be441","United State","Outlook","Password1","2019-03-19 09:48:41"];
let obj = {};
field_name.forEach((a,i) => obj[a] = field_value[i]);
console.log(obj)

【讨论】:

  • 感谢Maheer,这太完美了!!
【解决方案2】:

如果两个数组的大小始终相同,您可以尝试类似的方法:

let JSONOutput = {}

for (let i = 0; i < firstArray.length; i++) {
    JSONOutput[firstArray[i]] = secondArray[i];
}

【讨论】:

    【解决方案3】:

    检查此解决方案

    var output = {};
    field_name.forEach((field, index) => {
         output[field] = field_value[index];
     });
    

    【讨论】:

    • user8276566 欢迎来到 SO 并感谢您的帮助。如果您能解释一下为什么您的答案会解决问题并给出正确的上下文,那就太好了
    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 2012-07-21
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多