Javascript - 使用简化的单行 if 语句更新 var

小问题,我在 JS 中有一个 var,只要当前值低于 99,我就想增加它,否则它应该重置为零。


当前的简化代码

var age = 35;

age = ( age < 99) ? age+1 : 0;

现在,这是合理的人类可读的。但是,如果我的 var 是obj[layer01][gridY][gridX][shape] 那会改变我的行,比如:


obj[layer01][gridY][gridX][shape] = ( obj[layer01][gridY][gridX][shape] < 99) ? obj[layer01][gridY][gridX][shape]+1 : 0;

问题

有没有办法简化这个?就像是:


age = (< 99) ? ++ : 0;


潇湘沐
浏览 256回答 3
3回答

人到中年有点甜

最简单的方法是创建一个函数:var obj = {&nbsp; a: {&nbsp; &nbsp; b: 1&nbsp; }};function increment(value, max) {&nbsp; // this do the same as your ternary operator&nbsp; return (value + 1) % max;}obj['a']['b'] = increment(obj['a']['b'], 100);console.log(obj['a']['b']);// THIS DOES NOT WORK (won't update obj):var x = obj['a']['b'];x = increment(x, 100);console.log(obj['a']['b'], x);

一只甜甜圈

( % )像这样使用模运算符 -var age = 95;var limit = 100;function incrementValue(){&nbsp; &nbsp; age = (age+1) % limit;&nbsp; &nbsp; document.getElementById('number').value = age;}document.getElementById('number').value = age;<form>&nbsp; &nbsp;<input type="number" id="number"/>&nbsp; &nbsp;<input type="button" onclick="incrementValue()" value="Increment Value" /></form>

慕娘9325324

将temp变量存储到变量中,然后执行操作:试试这个:let age = obj[layer01][gridY][gridX][shape];obj[layer01][gridY][gridX][shape] = ( age < 99) ? (age + 1) : 0;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript