我正在嘗試將物件操作為我的物件格式,但它不起作用。
我想轉換這個物件陣列:
let details =
[
{ tower_name: 'T1', flats: '["99", "96"]' },
{ tower_name: 'T2', flats: '["98"]' },
{ tower_name: 'T3', flats: '["505"]' }
]
并將其轉換為以下格式:
let towerFlatDetails =
{
"T1": ["99", "96"],
"T2": ["98"],
"T3": ["505"],
}
我用這種方式嘗試過,但沒有奏效:
let towerFlatDetails = {}
for (let i in details)
{
towerFlatDetails.details[i].tower_name = JSON.parse(towerFlatDetails.details[i].flats)
}
uj5u.com熱心網友回復:
towerFlatDetails.details 不存在,因為 towerFlatDetails 是一個空物件,沒有任何屬性。 towerFlatDetails.details[i].tower_name需要你在里面創建一個 details 陣列towerFlatDetails才能作業。
你需要寫:
let details =
[
{ tower_name: 'T1', flats: '["99", "96"]' },
{ tower_name: 'T2', flats: '["98"]' },
{ tower_name: 'T3', flats: '["505"]' }
]
let towerFlatDetails = {}
for (let i of details)
{
towerFlatDetails[i.tower_name] = JSON.parse(i.flats)
}
console.log(towerFlatDetails);
這將使用 tower_name 作為鍵towerFlatDetails和flats值。
此外,在您的回圈中,您需要撰寫of而不是in. in使用條目的索引,of使用每個條目的值。
這是您撰寫的回圈直接轉換為作業代碼。
uj5u.com熱心網友回復:
使用Object.fromEntries:
let details =
[
{ tower_name: 'T1', flats: '["99", "96"]' },
{ tower_name: 'T2', flats: '["98"]' },
{ tower_name: 'T3', flats: '["505"]' }
];
let result = Object.fromEntries(details.map(({tower_name, flats}) =>
[tower_name, JSON.parse(flats)]
));
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/440669.html
標籤:javascript 数组 反应 目的
下一篇:找不到陣列值
