我是新手,如果我犯了任何錯誤,請原諒。
我正在從資料庫中讀取一行資料,我收到的資料是 JSON 物件,如下所示:
var details = {jan: '2591.00', feb: '4898.00', mar: '26290.00', apr: '22719.00', may: '26528.00',start: '2020', end: '2022', v1: '34', v2: '22'};
現在我想改變/修改這個 JSON 物件,使它看起來像這樣:
var details = [
{jan: '2591.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{feb: '4898.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{mar: '26290.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{apr: '22719.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{may: '26528.00',start: '2020', end: '2022', v1: '34', v2: '22'}
]
我的方法:我一直試圖通過使用來實作這一點:
result = Object
.keys(details)
.map(k => ({ [k]: details[k] }));
但是,它會在每個鍵值對處中斷。
var details = {jan: '2591.00', feb: '4898.00', mar: '26290.00', apr: '22719.00', may: '26528.00',start: '2020', end: '2022', v1: '34', v2: '22'};
var details = [
{jan: '2591.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{feb: '4898.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{mar: '26290.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{apr: '22719.00',start: '2020', end: '2022', v1: '34', v2: '22'},
{may: '26528.00',start: '2020', end: '2022', v1: '34', v2: '22'}
]
uj5u.com熱心網友回復:
let details = {
jan: '2591.00',
feb: '4898.00',
mar: '26290.00',
apr: '22719.00',
may: '26528.00',
start: '2020',
end: '2022',
v1: '34',
v2: '22'
};
let months = ['jan', 'feb', 'mar', 'apr', 'may'];
let detailsByMonth = months.map(month => ({
[month]: details[month],
start: details.start,
end: details.end,
v1: details.v1,
v2: details.v2
}));
console.log(detailsByMonth);
uj5u.com熱心網友回復:
這是一個班輪。首先,我根據您在陣列中不想要的內容過濾物件的鍵(也可以執行相反的操作)。然后我將它們映射到所需型別的物件中。
const mappedDetails = Object.keys(details)
.filter((i) => !["v1", "v2", "start", "end"].includes(i))
.map((j) => ({
[j]: details[j],
start: details.start,
end: details.end,
v1: details.v1,
v2: details.v2
})
);
uj5u.com熱心網友回復:
嘗試這個
var arrContinue = ["start", "end", "v1", "v2"];
const newDetails = Object.keys(details)
.filter(k => (arrContinue.indexOf(k) == -1))
.map(k => ({
[k]: details[k],
start: details.start,
end: details.end,
v1: details.v1,
v2: details.v2,
}));
uj5u.com熱心網友回復:
代碼片段中添加了實作細節以更好地理解它。
// Input object
const details = {
jan: '2591.00',
feb: '4898.00',
mar: '26290.00',
apr: '22719.00',
may: '26528.00',
start: '2020',
end: '2022',
v1: '34',
v2: '22'
};
// Create an array which contains only month names by using Object.keys() to get the keys array of details object and then filtered out start, end, v1 & v2 via Array.filter() method.
const monthsArray = Object.keys(details).filter((element) => !['start', 'end', 'v1', 'v2'].includes(element));
// Creating an array which contain objects with the month details by using Array.map() method.
const result = monthsArray.map((month) => ({
[month]: details[month],
start: details.start,
end: details.end,
v1: details.v1,
v2: details.v2
}));
// Final Result.
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/435551.html
標籤:javascript json javascript 对象 数组合并
