亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript - 使用簡化的單行 if 語句更新 var

Javascript - 使用簡化的單行 if 語句更新 var

瀟湘沐 2022-01-07 09:52:02
小問題,我在 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;
查看完整描述

3 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

最簡單的方法是創建一個函數:


var obj = {

  a: {

    b: 1

  }

};


function increment(value, max) {

  // this do the same as your ternary operator

  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);


查看完整回答
反對 回復 2022-01-07
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

( % )像這樣使用模運算符 -


var age = 95;

var limit = 100;


function incrementValue()

{

    age = (age+1) % limit;

    document.getElementById('number').value = age;

}


document.getElementById('number').value = age;

<form>

   <input type="number" id="number"/>

   <input type="button" onclick="incrementValue()" value="Increment Value" />

</form>


查看完整回答
反對 回復 2022-01-07
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

將temp變量存儲到變量中,然后執行操作:


試試這個:


let age = obj[layer01][gridY][gridX][shape];

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


查看完整回答
反對 回復 2022-01-07
  • 3 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號