const hours = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
const data = [
{
_id: '6239f41e0a9e6ba82ebc9774',
title: 'X',
capacity: 60,
inParkings: [
{
hour: 7,
count: 5,
},
{
hour: 19,
count: 4,
},
{
hour: 16,
count: 1,
},
{
hour: 8,
count: 11,
},
{
hour: 5,
count: 4,
},
{
hour: 9,
count: 3,
},
{
hour: 13,
count: 12,
},
{
hour: 14,
count: 6,
},
{
hour: 10,
count: 9,
},
{
hour: 23,
count: 1,
},
{
hour: 6,
count: 1,
},
{
hour: 12,
count: 8,
},
{
hour: 11,
count: 3,
},
],
},
{
_id: '62725362d9575e262f51ed84',
title: 'Y',
capacity: 75,
inParkings: [
{
hour: 13,
count: 6,
},
{
hour: 5,
count: 1,
},
{
hour: 14,
count: 2,
},
{
hour: 1,
count: 1,
},
{
hour: 6,
count: 1,
},
],
},
];
如果 hours 陣列中的資料中缺少停車資料中的小時值,我想為沒有的值添加額外的
因此,例如,需要在以下時間輸入計數 0
我寫的代碼
data.map((m) => {
return {
name: m.title,
data: m.inParkings.slice().sort((a, b) => {
return a.hour - b.hour;
}),
};
})
我想得到類似的輸出
[{
data: [{
count: 4,
hour: 5
}, {
count: 1,
hour: 6
}, {
count: 5,
hour: 7
}, {
count: 11,
hour: 8
}, {
count: 3,
hour: 9
}, {
count: 9,
hour: 10
}, {
count: 3,
hour: 11
}, {
count: 8,
hour: 12
}, {
count: 12,
hour: 13
}, {
count: 6,
hour: 14
}, {
count: 1,
hour: 16
}, {
count: 4,
hour: 19
}, {
count: 1,
hour: 23
}],
name: "X"
}, {
data: [{
count: 1,
hour: 1
}, {
count: 1,
hour: 5
}, {
count: 1,
hour: 6
}, {
count: 6,
hour: 13
}, {
count: 2,
hour: 14
}, {
count: 0,
hour: 18,
}],
name: "Y"
}]
例如,由于parkings的hours陣列中沒有18的值,所以我需要在剛剛創建的陣列中輸入相關小時的值為0。
我可能解釋得有點糊涂,但簡單來說,如果停車資料中的 hours 陣列中沒有時鐘,我需要將相關時間添加到資料中并回傳計數 0。
uj5u.com熱心網友回復:
您可以收集物件中的計數并hours使用count或為零進行映射。
const
hours = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
data = [{ _id: '6239f41e0a9e6ba82ebc9774', title: 'X', capacity: 60, inParkings: [{ hour: 7, count: 5 }, { hour: 19, count: 4 }, { hour: 16, count: 1 }, { hour: 8, count: 11 }, { hour: 5, count: 4 }, { hour: 9, count: 3 }, { hour: 13, count: 12 }, { hour: 14, count: 6 }, { hour: 10, count: 9 }, { hour: 23, count: 1 }, { hour: 6, count: 1 }, { hour: 12, count: 8 }, { hour: 11, count: 3 }], }, { _id: '62725362d9575e262f51ed84', title: 'Y', capacity: 75, inParkings: [{ hour: 13, count: 6 }, { hour: 5, count: 1 }, { hour: 14, count: 2 }, { hour: 1, count: 1 }, { hour: 6, count: 1 }] }],
getData = parkings => {
const
counts = Object
.fromEntries(parkings.map(({ hour, count }) => [hour, count]));
return hours.map(hour => ({ hour, count: counts[hour] || 0 }));
},
result = data.map(({ title: name, inParkings }) => ({ data: getData(inParkings), name }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/527565.html
