簡體   English   中英

獲取兩個變量之間的差異

[英]Get the difference between two variables

我有一個 object 和 Hours 保存為字符串。 我需要將字符串轉換為小時,然后得到 2 個變量之間的差異。

const groupSchedule=[
    {"days":"sat","Hourfrom":"15:00","Hourto":"19:00"},
    {"days":"sun","Hourfrom":"15:00","Hourto":"19:00"},
    {"days":"mon","Hourfrom":"15:00","Hourto":"19:00"},
]
function numberOfHoursInWeek(groupSchedule) {
    let hours = 0;
    for (const gSchedule of groupSchedule) {
           let hour = gSchedule.Hourto.to - gSchedule.Hourfrom;
        console.log(hour);
        hours += hour;
    }
    return hours;
}

將字符串轉換為小時 (NAN) 時出現問題

我試着用一種非常冗長的方式來寫。 你可以這樣做:

const hoursTo = "19:33";
const hoursFrom = "14:55";
const hoursToArray = hoursTo.split(":");
const hoursFromArray = hoursFrom.split(":");
const hoursToDate = new Date(0, 0, 0, hoursToArray[0], hoursToArray[1], 0, 0); 
const hoursFromDate = new Date(0, 0, 0, hoursFromArray[0], hoursFromArray[1], 0, 0); 
const difference = Math.abs(hoursToDate - hoursFromDate) / 36e5;
console.log(hours) //4.633333333333334;

基本問題是您正在gSchedule.hourTogSchedule.hourFrom並在它們是字符串值時嘗試使用它們執行算術運算。 您需要拆分字符串並提取數字類型來執行這種類型的數學計算。

在這種情況下,相關的數字部分是HH:MM字符串的小時部分,因此使用帶有:作為分隔符的拆分 function 將返回兩個字符串的列表,一個小時字符串和一個分鍾字符串。 然后我們可以解析小時字符串以獲取 int、float 或其他數字類型。

//split time strings on the ':'
let hrToSplit = gSchedule.hourTo.split(':')
let hrFromSplit = gSchedule.hourFrom.split(':')

//parse time strings to extract hour as int
let hrToNum = parseInt(hrToSplit[0], 10)
let hrFromNum = parseInt(hrFromSplit[0], 10)

//perform whatever math is needing using the numbers themselves, not the strings
console.log(hrToNum + hrFromNum)

如果您想進一步閱讀您在此處獲得的答案之外的不同方法, 這是一個類似的問題,可能對參考有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM