केवल तत्वों है कि एक मूल्य है से अधिक या बराबर करने के लिए सीमा में रखा जाना चाहिए सरणी. फिर एक नई सरणी होगा किया जा करने के लिए बनाया जाएगा, जो होते हैं, कई वस्तुओं. इन वस्तुओं में से प्रत्येक जाएगा है, दो गुण, शुरू और अंत.
अगर वहाँ रहे हैं कई तत्वों को एक पंक्ति में (जो है एक टाइमस्टैम्प 10 मिनट के अलावा) है, वे वर्गीकृत किया जाएगा में एक ही वस्तु है । जहां शुरू मूल्य होगा टाइमस्टैम्प का पहला तत्व है और अंत में मूल्य हो जाएगा टाइमस्टैम्प के मूल्य के अंतिम तत्व समूह से अधिक 10 मिनट ।
अगर वहाँ नहीं हैं कई तत्वों के बाद, शुरू मूल्य होगा टाइमस्टैम्प और अंत हो जाएगा टाइमस्टैम्प अधिक 10 मिनट के लिए ।
const data = [{
timestamp: '2021-11-23T14:00:00+0000',
amount: 21
},
{
timestamp: '2021-11-23T14:10:00+0000',
amount: 27
},
{
timestamp: '2021-11-23T14:20:00+0000',
amount: 31
},
{
timestamp: '2021-11-23T14:30:00+0000',
amount: 29
},
{
timestamp: '2021-11-23T14:40:00+0000',
amount: 18
},
{
timestamp: '2021-11-23T14:50:00+0000',
amount: 17
},
{
timestamp: '2021-11-23T15:00:00+0000',
amount: 25
},
{
timestamp: '2021-11-23T15:10:00+0000',
amount: 21
}
]
const threshold = 25
const aboveThreshold = data.filter(element => element.amount >= threshold)
const workSchedule = []
for (let i = 0; i < aboveThreshold.length; i++) {
if (i === 0) {
workSchedule.push({
start: aboveThreshold[i].timestamp,
end: aboveThreshold[i + 1].timestamp
})
}
if (i > 0 && i < aboveThreshold.length - 1) {
if (aboveThreshold[i].timestamp.slice(11, 13) === aboveThreshold[i + 1].timestamp.slice(11, 13)) {
workSchedule.push({
start: aboveThreshold[i].timestamp,
end: aboveThreshold[i + 1].timestamp
})
}
}
if (i === aboveThreshold.length - 1) {
workSchedule.push({
start: aboveThreshold[i].timestamp,
end: aboveThreshold[i].timestamp
})
}
}
console.log(workSchedule)
लेकिन अंत परिणाम मैं चाहता हूँ निम्नलिखित है:
[
{
start: '2021-11-23T14:10:00+0000',
end: '2021-11-23T14:40:00+0000'
},
{
start: '2021-11-23T15:00:00+0000',
end: '2021-11-23T15:10:00+0000'
}
]
मुझे आशा है कि मैं स्पष्ट था
1