2017-06-29 4 views
1

私はSweetAlert2を使用しています。そのために選択ボックスに入力されるオプションを作成する必要があります。私はしかし、そのために「inputOptions」フィールドを使用することができることを知っている、と私は下に(自分のサイトから)自分の例を見て:あなたは固定セットを持っている場合、それは素晴らしいとすべてで、各アイテムのキーが変わるキーと値のペアのJSON構造を作成しますか?

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

それが動作していないようでしたか?私は実際にここでいくつかの助けを使うことができます。

ありがとうございます!可能な限り既存のコードにそれは限り近くにしようとして代わりに

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

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

+0

を実際の商品'for ... of'ループや' for(items in items) 'はitem = items [i]とすることができます。 – Boris

答えて

4

あなたのベースオブジェクトを反復し、必要とinputOptionsを作成することができます: `items`の項目は、配列内のインデックスも、とはありません、あなたのループでは

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

1

あなたはこれを試すことができます。

関連する問題