[英]Convert javascript array to object of same keys/values
我有一個返回數組的函數,如下所示:
但我正在嘗試填充SweetAlert2對話框。
正如文檔所示 ,所需的輸入將如下所示
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“]]”
這可以通過簡單的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規則錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.