คำอธิบายโจทย์
เขียน function solution(events, width) ข้อมูลเข้าและผลลัพธ์เป็นค่า JSON ห้ามแก้ไขอาร์เรย์หรือออบเจ็กต์ข้อมูลเข้า ไม่รองรับไลบรารีภายนอก เครือข่าย หรือฟังก์ชันแบบอะซิงโครนัส events:{timestamp:integer,service:string,durationMs:nonnegative integer,status:integer}[], width:positive integer. Bucket start=floor(timestamp/width)*width, including negative timestamps. Return {start,service,count,errors,totalMs} per bucket/service; errors counts status>=500. Sort by start, then case-sensitive JavaScript service ordering. All totals are safe integers. ขอบเขตข้อมูล: อาร์เรย์อินพุตแต่ละชุดมีไม่เกิน 50,000 รายการ สตริงไม่เกิน 1,000 ตัวอักษร ตัวเลขต้องเป็นค่าจำกัด จำนวนเต็มและผลรวมจำนวนเต็มอยู่ในช่วงจำนวนเต็มที่ปลอดภัยของ JavaScript ชนิดและความถูกต้องอื่นเป็นไปตามกฎด้านบน
ตัวอย่างข้อมูลเข้าและผลลัพธ์
ตัวอย่าง 1
อาร์กิวเมนต์ของฟังก์ชัน
[
[
{
"timestamp": 0,
"service": "api",
"durationMs": 10,
"status": 200
},
{
"timestamp": 9,
"service": "api",
"durationMs": 20,
"status": 500
},
{
"timestamp": 10,
"service": "api",
"durationMs": 10,
"status": 200
}
],
10
]ค่าที่ส่งคืน
[
{
"start": 0,
"service": "api",
"count": 2,
"errors": 1,
"totalMs": 30
},
{
"start": 10,
"service": "api",
"count": 1,
"errors": 0,
"totalMs": 10
}
]ตัวอย่าง 2
อาร์กิวเมนต์ของฟังก์ชัน
[
[
{
"timestamp": 3,
"service": "z",
"durationMs": 10,
"status": 200
},
{
"timestamp": 1,
"service": "a",
"durationMs": 10,
"status": 200
}
],
5
]ค่าที่ส่งคืน
[
{
"start": 0,
"service": "a",
"count": 1,
"errors": 0,
"totalMs": 10
},
{
"start": 0,
"service": "z",
"count": 1,
"errors": 0,
"totalMs": 10
}
]ตัวอย่าง 3
อาร์กิวเมนต์ของฟังก์ชัน
[
[
{
"timestamp": 0,
"service": "api",
"durationMs": 1,
"status": 503
}
],
100
]ค่าที่ส่งคืน
[
{
"start": 0,
"service": "api",
"count": 1,
"errors": 1,
"totalMs": 1
}
]