我有一个返回数组的函数,如下所示:
但我正在尝试填充SweetAlert2对话框。
As the documentation exemplifies,所需的输入将如下所示
inputOptions: {
'SRB': 'Serbia',
'UKR': 'Ukraine',
'HRV': 'Croatia'
},
考虑到密钥与值相同,我怎样才能将我的数组转换为所需的格式?
所以,这样的结果就是结果:
{
'aaa123': 'aaa123',
'Açucena': 'Açucena',
'Braúnas': 'Braúnas',
[...]
}
我尝试了JSON.stringify
,但输出不是我需要的:
“[[” AAA123" , “Açucena”, “布劳纳斯”,“C。 Fabriciano “ ”格格“, ”gegeq2“, ”伊帕廷加“, ”若阿内夏“, ”梅斯基塔“, ”Rodoviário“, ”睾丸中“, ”teste2“, ”TIMOTEO“, ”Tomatoentro“, ”TS“]]”< / p>
答案 0 :(得分:14)
这可以通过简单的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));
答案 1 :(得分:3)
如果您使用的是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;
}, {});
答案 2 :(得分:2)
关键是您可以使用obj [“string”]技术分配属性:
function ArrayToObject(arr){
var obj = {};
for (var i = 0;i < arr.length;i++){
obj[arr[i]] = arr[i];
}
return obj
}
答案 3 :(得分:1)
Object.assign(
{},
...['value1', 'value2', 'value3', 'value4', 'value5'].map((value) => ({
[value]: value,
})),
)
返回
{value1: "value1", value2: "value2", value3: "value3", value4: "value4", value5: "value5"}
没有常见的ESlint规则错误。