我有一個陣列:
[
"2022-05-20",
"2022- 06-22",
"2022-06-20"
]
我想產生一個像這樣的物件:
{
'2022-05-20': {disabled:true},
'2022-06-22': {disabled: true},
'2022-06-20': {disabled: true},
}
我嘗試使用 for 回圈,但它不斷產生錯誤。這可以用javascript嗎?
uj5u.com熱心網友回復:
這可能會完成作業。
const yourArray = ["2022-05-20", "2022-06-22", "2022-06-20"];
const obj = {};
for(const x of yourArray) obj[String(x)] = { disabled: true };
console.log(obj); // :)
obj創建將保存所需生成物件的變數。迭代拋出你的陣列并使用當前迭代中值的字串決議版本(決議以防萬一,如果你已經知道陣列是由字串組成的,這有點不必要)將其保存為新物件的鍵,還為該鍵分配 value { disabled: true }。
uj5u.com熱心網友回復:
這是一個單線解決方案:
let res = data.reduce((acc, curr) =>(acc[curr] = {disabled: true}, acc), {});
uj5u.com熱心網友回復:
可以做到:
let dates = [
"2022-05-20",
"2022- 06-22",
"2022-06-20"
];
let newObj = Object.assign(...dates.map(key => ({[key]: {disabled: true}})));
console.log(newObj)
uj5u.com熱心網友回復:
您可以Array#reduce在以下演示中使用。您也可以使用Array#map,但您也必須使用Object#fromEntries。
const input = [ "2022-05-20", "2022- 06-22", "2022-06-20" ],
output = input.reduce((prev,cur) => ({...prev,[cur]:{disabled:true}}), {});
console.log( output );
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478716.html
標籤:javascript 数组 目的 映射
