为密钥和值对构建JSON结构,每个项目的键都会更改键



我正在使用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,如下:

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

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

预先感谢!

您可以在基本对象上迭代并根据需要创建输入:

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

您可以尝试一下:

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

试图使其尽可能接近现有代码。

最新更新