您可以使用 decrement/increment 运算符但在 JavaScript 中跳过 0 就像 continue 的工作原理一样吗?

Can you use decrement/increment operator but skip 0 in JavaScript just like how continue works?

我这里有一个数字计数器代码,它有递增和递减按钮。每当您单击按钮时,它都会完成增加和减少输入值的工作。

            // =number_counter
            function decrement(e) {
                const btn = e.target.parentNode.parentElement.querySelector(
                    'button[data-action="decrement"]'
                );
                const target = btn.nextElementSibling;
                let value = Number(target.value);
                value--;
                target.value = value;  
                toggleRowClass(btn, value, ["bg-red-200", "item-returned"]);  
            }

            function increment(e) {
                const btn = e.target.parentNode.parentElement.querySelector(
                    'button[data-action="decrement"]'
                );
                const target = btn.nextElementSibling;
                let value = Number(target.value);
                value++;
                target.value = value;
                toggleRowClass(btn, value, ["bg-red-200", "item-returned"]);
            }

            const decrementButtons = document.querySelectorAll(
                `button[data-action="decrement"]`
            );

            const incrementButtons = document.querySelectorAll(
                `button[data-action="increment"]`
            );

            decrementButtons.forEach(btn => {
                btn.addEventListener("click", decrement);
            });

            incrementButtons.forEach(btn => {
                btn.addEventListener("click", increment);
            });

这次,我想在单击输入值为 -11 的按钮时跳过 0。我可以在没有循环的情况下添加诸如 continue; 之类的行为,而只有 increment/decrement 运算符吗?

Continue 不存在于循环之外。最简单的解决方案是在 increment/decrement 中添加一个条件,您可以在其中检查当前值是否为 -1/1 并在这些情况下添加其他逻辑:)

解决方法就是设置 value = 1 or value = -1;

function decrement(e) {
    const btn = e.target.parentNode.parentElement.querySelector(
        'button[data-action="decrement"]'
    );
    const target = btn.nextElementSibling;
    let value = Number(target.value);
    value--;

    if (value == 0) {
        value = -1;
        target.value = value;
    } else {
        target.value = value;
    }

    toggleRowClass(btn, value, ["bg-red-200", "item-returned"]);
}

function increment(e) {
    const btn = e.target.parentNode.parentElement.querySelector(
        'button[data-action="decrement"]'
    );
    const target = btn.nextElementSibling;
    let value = Number(target.value);
    value++;

    if (value == 0) {
        value = 1;
        target.value = value;
    } else {
        target.value = value;
    }

    toggleRowClass(btn, value, ["bg-red-200", "item-returned"]);
}

对不起,我错过了。