1

我正在使用SweetAlert2,我需要创建将在选择框中填充的选项。我知道我可以使用“inputOptions”字段,但是,我在下面查看了他们的示例(来自他们的网站):

inputOptions: {
  'SRB': 'Serbia',
  'UKR': 'Ukraine',
  'HRV': 'Croatia'
},

现在,当您拥有一组固定的硬编码数据时,这真是太好了。但是,在我的用例中,我需要能够从数据库中提取这些内容,而我的 API 已经通过 REST 端点完成了这项工作,并且可以说我以以下结构将其取回:

[
  {"key": "SRB", "value":"Serbia"},
  {"key": "UKR", "value":"Ukraine"},
  {"key": "SRB", "value":"Croatia"}
]

有没有一种简单的方法可以将底部格式转换为顶部格式?

我尝试对其进行迭代,为每个变量创建一个 var,如下所示:

            var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { item.key : item.value };
            }

但这似乎不起作用?我真的可以在这里使用一些帮助。

提前致谢!

4

2 回答 2

4

您可以遍历基础对象并根据需要创建 inputOptions:

var base_format = [
  {"key": "SRB", "value":"Serbia"},
  {"key": "UKR", "value":"Ukraine"},
  {"key": "HRV", "value":"Croatia"}
];

var inputOptions = {};

for (item of base_format)
  inputOptions[item.key] = item.value;
  
console.log(inputOptions);

于 2017-06-29T04:57:04.333 回答
1

你可以试试这个:

var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { items[item].key : items[item].value };
            }

代替

var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { item.key : item.value };
            }

尝试使其尽可能接近您现有的代码。

于 2017-06-29T04:56:57.260 回答