[英]Convert object to array and group them by object key
通過鍵將對象轉換為數組和組主題! (我不確定標題是否正確,但這是我需要的:
(如果當前鍵等於下一個鍵+1和上一個鍵-1且它們都具有相同的值,則需要單擊ck!)
這樣的輸入
{
"2019-07-17":{
"7":66,
"8":66,
"9":66,
"11":70,
"12":70,
"16":70
},
"2019-07-18":{
"10":68,
"11":68,
"12":75,
"14":75,
"15":75,
"18":70
}
}
輸出應該是這樣的
{
"2019-07-17":[
{
"start":7,
"end":9,
"id":66
},
{
"start":11,
"end":12,
"id":70
},
{
"start":16,
"end":17,
"id":70
}
],
"2019-07-18":[
{
"start":10,
"end":11,
"id":68
},
{
"start":12,
"end":13,
"id":75
},
{
"start":14,
"end":15,
"id":75
},
{
"start":18,
"end":19,
"id":70
}
]
}
您可以使用內部鍵和值對條目進行分組並獲得新對象。
var data = { "2019-07-17": { 7: 66, 8: 66, 9: 66, 11: 70, 12: 70, 16: 70 }, "2019-07-18": { 10: 68, 11: 68, 12: 75, 14: 75, 15: 75, 18: 70 } }, result = Object.fromEntries(Object.entries(data).map(([k, v]) => { var values = Object.entries(v).reduce((r, [l, id], i, { [i - 1]: last }) => { if (last && +last[0] + 1 === +l && last[1] === id) { r[r.length - 1].end = +l; } else { r.push({ start: +l, end: +l + 1, id }); } return r; }, []); return [k, values]; })); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.