0

約30の「値」またはそれらが呼び出されるものを持つオブジェクトがあります。次に例を示します。

var list = new Object();
list.one = 0;
list.two = 0;
list.three = 0;
...
list.thirty = 0;

リストオブジェクトの値をインクリメントできる簡単で効率的な方法はありますか?

たとえば、100 個のボタンがあるとします。各ボタンを押すと、値が一定量増加します。私がやろうとしているのは、次のような短い関数です:

function test( value, amount, math ) {
   if( math === "add" ) {
   value += amount;
   } else if( math === "sub" ) {
   value -= amount;
   }
}

しかし、全体の値は機能しません=(。私がそれを行うことについて考えることができる唯一の他の方法は、30個の関数を作成することです。各関数は上記と同じことを行いますが、それぞれが加算または減算するリスト値を指定します.またはif value === "one" then list.one などを使用した単一の関数他のアイデアはありますか?配列を使用することを考えましたが、リストの値には特定の名前が付けられているため、コードを読みやすくすることをお勧めします他の機能では簡単です。

助けてくれてありがとう

4

4 に答える 4

1
list[value] += amount;

value は、「one」、「two」などの文字列です。

インクリメントするオブジェクトを渡すこともできます。

function(obj, value, amount, math) {
  obj[value] += math;
}

ただし、おそらく配列 + ループ / リファクタリングを使用する必要があります。

于 2013-07-31T19:02:01.783 に答える