我想用小代碼找到重疊的時隙。讓有時間段:
const slots = [
{
start_time: '10:30',
end_time: '11:00'
},
{
start_time: '11:30',
end_time: '12:00'
}
]
我從用戶那里得到的價值是:
const inputStartTime = '10:50';
const inputEndTime = '11:20';
inputStartTime > slots.end_time我認為,如果和不會有重疊inputEndTime < slots.start_time。所以,我想設定一個變數,如 constoverlappedSlots = //并將該變數的輸出作為(console.log(overlappedSlots)):
[{
start_time: "10:30",
end_time: "11:00"
}]
但是,我不能通過撰寫這個函式來得到這個輸出:
const inputStartTime = '10:50';
const inputEndTime = '11:20';
const slots = [
{
start_time: '10:30',
end_time: '11:00'
},
{
start_time: '11:30',
end_time: '12:00'
}
]
const overlappedSlots = slots.filter(slot => !slot.end_time < inputStartTime || !slot.start_time > inputEndTime);
console.log(overlappedSlots)
我在那里做錯了什么?
uj5u.com熱心網友回復:
您的代碼的問題仍然存在 !
嘗試這個:
const overlappedSlots = slots.filter(slot => !(slot.end_time < inputStartTime) || !(slot.start_time > inputEndTime));
console.log("over" overlappedSlots);
uj5u.com熱心網友回復:
使用&&而不是 ||
這個會給你你想要的結果
時間開始:10:30結束時間:11:00
uj5u.com熱心網友回復:
錯誤是當您使用!不帶括號時
const inputStartTime = '10:50';
const inputEndTime = '11:20';
const slots = [{
start_time: '10:30',
end_time: '11:00',
},
{
start_time: '11:30',
end_time: '12:00',
},
];
const overlappedSlots = slots.filter(
(slot) => inputStartTime > slot.start_time || !(slot.start_time > inputEndTime));
console.log(overlappedSlots);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/451952.html
標籤:javascript
上一篇:谷歌翻譯按鈕根本沒有出現
下一篇:如何在r中的串列中跨資料框選擇列
