【问题标题】:Prevent user to type more than one decimal dot in a JS calculator防止用户在 JS 计算器中输入多个小数点
【发布时间】:2020-11-14 23:47:25
【问题描述】:

在我的 Javascript 计算器项目中,我试图阻止用户输入多个小数点(如果已经有一个小数点)(例如:5.2.3.56 不允许)。

用户点击的所有数字、小数和运算符按钮都被推送并存储在一个数组中。

如何检查是否已经存在点并使用值数组禁用按钮?


const numButtons = document.querySelectorAll('.number');

const opButtons = document.querySelectorAll('.operation');

const display = document.querySelector('.display');

const decimal = document.querySelector('.decimal');

let opClicked;

let resultArray = [];

// Event listeners

numButtons.forEach(number => {
    number.addEventListener('click', function(e) {

    numClicked = e.target.textContent;
    
    if (display.textContent === '0') {
        display.textContent = '';

    } else if (resultArray[resultArray.length - 1] === opClicked){   
        display.textContent = '';
    }
    resultArray.push(numClicked);
    display.textContent += numClicked
});

opButtons.forEach(operator => {
    operator.addEventListener('click', function(e) {

    empty();

    opClicked = e.target.textContent;
    resultArray.push(opClicked);

    operate();
 
});

decimal.addEventListener('click', function(e) {

    let decimalClicked  = e.target.textContent;

    resultArray.push(decimalClicked);
    display.textContent += decimalClicked;
    
});

【问题讨论】:

    标签: javascript arrays decimal calculator


    【解决方案1】:
    decimal.addEventListener('click', function(e) {
    
        var decimalClicked  = e.target.textContent;
        
        if(resultArray.includes(decimalClicked) == false){
            resultArray.push(decimalClicked);
            display.textContent += decimalClicked;
        }
    });
    

    上面的代码检查resultArray是否包含小数,如果不包含,则将小数附加到数组中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多