1

+1 を var store に 2 つの var で追加する方法はあるのでしょうか?

スイッチまたは if/else を使用するほうがよい方法です

Var store = 0
Var store1 = 0
Var store2 = 0

var buyer = "";
var seller = "";

switch(buyer){
case 1: buyer = buyer1;break;
case 2: buyer = buyer2;break;
}

switch(seller){
case 1:seller = seller1;break;
case 2:seller = seller2;break;
}

if(buyer == buyer1 && seller == seller1){
store1++
}
if(buyer == buyer2 && seller == seller2){
store2++
}
if(buyer == buyer1 && seller == seller2){
store0++
}

この方法を続けてコードを機能させたり、他の方法でコードをより良い方法で改善したりできますか?

switch(buyer)"case1" switch(seller)"case2"当時のようstore0++ switch(buyer)"case2" switch(seller)"case2"store2++

今より簡単な方法、助けてください

4

3 に答える 3

1

値をマップに格納することで、コードを簡素化できます。

考え

store0 = store0 + m[buyer][seller][0]
store1 = store1 + m[buyer][seller][1]
store2 = store2 + m[buyer][seller][2]

m = {
  <value_buyer1>: {
    <value_seller1>: [0, 1, 0],
    ...
  },
  ...
}

完全版

var store = 0
var store1 = 0
var store2 = 0

var buyer = "";
var seller = "";

switch(buyer){
  case 1: buyer = buyer1;break;
  case 2: buyer = buyer2;break;
}

switch(seller){
  case 1:seller = seller1;break;
  case 2:seller = seller2;break;
}

m = {};
m[buyer1] = {};
m[buyer1][seller1] = [0, 1, 0];
m[buyer1][seller2] = [1, 0, 0];
m[buyer2] = {};
m[buyer2][seller1] = [0, 0, 0];
m[buyer2][seller2] = [0, 0, 1];

store0 = store0 + m[buyer][seller][0]
store1 = store1 + m[buyer][seller][1]
store2 = store2 + m[buyer][seller][2]
于 2012-11-06T04:10:14.193 に答える
0

Because your buyer and seller are both numeric enums, you can use the combination of their values as keys to the store. This doesn't work if you want buyer1 & seller2 going to a different store than buyer2 & seller1, but they go to the same store, consider:

var store_count = {};

if (typeof store_count[buyer+seller] === "undefined")
   store_count[buyer+seller] = 0;

store_count[buyer+seller]++;

A further example of how this is implemented, called, and some internal documentation:

var store_count = {};

function updateStoreCount(buyer,seller){
   // initialize
   if (typeof store_count[buyer+seller] === 'undefined')
      store_count[buyer+seller]=0;

   store_count[buyer+seller]++;

   return store_count;
}

// Example Call:
updateStoreCount(1,2);


/* 
   store[2] == buyer1 and seller1
   store[3] == buyer1 and seller2  -and-  buyer2 and seller1
   store[4] == buyer2 and seller2
*/
于 2013-09-21T16:15:53.467 に答える