簡體   English   中英

我如何在 javascript(Reactjs) 中編寫此條件

[英]how I can write this condition in javascript(Reactjs)

我最近開始了一個帶有反應的計算器項目。 我創建了這個項目,它運行良好,但我只想為其添加一個新功能。 我想當我單擊一個操作符號(如“+”、“-”、“*”、“/”)時,如果我再單擊一次並且之前存在的操作相同(例如 1234+)時我單擊“+”或“-”我的代碼不將其添加到代碼中並將其替換為之前的操作,並對“/”和“*”執行此操作

我還附上了存儲庫鏈接,以便您自己查看我的計算器源代碼。 項目源代碼的存儲庫

請更新handleClick function,如下所示:

    const handleClick = (e) => {
        if(result.length && result.charAt(result.length-1) != e.target.name || result.length == 0)
        setResult(result.concat(e.target.name));   
}

在您的句柄上單擊handleClick只需檢查當前字符是否為運算符符號(例如:'+'、'-'、'*'、'/')並且當前result字符串中的最后一個字符也是運算符符號。 如果它們都是運算符符號,只需執行以下操作:

 const handleClick = (e) => { if (result.length > 0 && (result[result.length - 1] === '+' || result[result.length - 1] === '-' || result[result.length - 1] === '*' || result[result.length - 1] === '/') && (e.target.name === '+' || e.target.name === '-' || e.target.name === '*' || e.target.name === '/')) { const newRes = result.slice(0, result.length - 1).concat(e.target.name); setResult(newRes); } else { setResult(result.concat(e.target.name)); } }

暫無
暫無

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

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