次のように、配列を返す関数があります。
しかし、私はSweetAlert2ダイアログにデータを入力しようとしています。
ドキュメントが例示しているように 、必要な入力は次のようになります
inputOptions: {
'SRB': 'Serbia',
'UKR': 'Ukraine',
'HRV': 'Croatia'
},
キーが値と同じになることを考慮して、配列を必要な形式に変換するにはどうすればよいですか?
したがって、次のような結果になります。
{
'aaa123': 'aaa123',
'Açucena': 'Açucena',
'Braúnas': 'Braúnas',
[...]
}
私が試してみました JSON.stringify
、しかし出力は私が必要とするものではありません:
"[[" aaa123 "、"Açucena "、"Braúnas "、" C。ファブリシアーノ "、" gege "、" gegeq2 "、" Ipatinga "、"Joanésia "、" Mesquita "、"Rodoviário "、" teste "、" teste2 "、"Timóteo "、" Tomatoentro "、" ts "]]"
これは、単純なreduce
呼び出しで実行できます。
// Demo data
var source = ['someValue1', 'someValue2', 'someValue3', 'other4', 'other5'];
// This is the "conversion" part
var obj = source.reduce(function(o, val) { o[val] = val; return o; }, {});
// Demo output
document.write(JSON.stringify(obj));
これの鍵は、obj ["string"]テクニックを使用してプロパティを割り当てることができるということです。
function ArrayToObject(arr){
var obj = {};
for (var i = 0;i < arr.length;i++){
obj[arr[i]] = arr[i];
}
return obj
}
jQueryを使用している場合。
$.extend({}, ['x', 'y', 'z']);
そうでない場合;
Object.assign({}, my_array);
もう一つの例;
var arr = [{name: 'a', value: 'b', other: 'c'}, {name: 'd', value: 'e', other: 'f'}];
var obj = arr.reduce(function ( total, current ) {
total[ current.name ] = current.value;
return total;
}, {});
Object.assign(
{},
...['value1', 'value2', 'value3', 'value4', 'value5'].map((value) => ({
[value]: value,
})),
)
戻り値
{value1: "value1", value2: "value2", value3: "value3", value4: "value4", value5: "value5"}
一般的なESlintルールエラーはありません。