如何在两个var之后添加+1

时间:2012-11-06 04:01:16

标签: javascript html if-statement switch-statement

只是想知道有没有向var存储添加+1,两个var是真的吗?

使用switch或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++

现在更简单的方法,请帮助

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

由于您的买家和卖家都是数字枚举,因此您可以将其值的组合用作商店的键。如果您希望buyer1 & seller2转到与buyer2 & seller1不同的商店,但是它们会转到同一商店,请考虑以下情况,这不起作用:

var store_count = {};

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

store_count[buyer+seller]++;

如何实现,调用以及一些内部文档的另一个示例:

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
*/

答案 2 :(得分:0)

我不明白如果买家和卖家都是数字索引,那么转换是如何必要的。

var stores = [0,0,0];

function update(buyer, seller){

    if(buyer==1 && seller==2) stores[0]++;
    if(buyer==1 && seller==1) stores[1]++;
    if(buyer==2 && seller==2) stores[2]++;
}