计数器变量在if语句中没有增加

时间:2018-03-30 17:50:22

标签: javascript function for-loop if-statement

我有一个函数,假设大写下一个单词的第一个字母。 “这是一个!测试。” 是理想的结果。

var splitUp = ["this", "is", "a!", "test."];

只有在运行“if”语句时,我才会在“for循环”中增加变量。

if (punctuation.indexOf(translationString[iii]) != -1) {
  console.log(iii+ ": " +translationString[iii]);
  console.log("iii is on: " + iii);
  iii + 2;
  console.log("after increment, iii is on: " + iii);
  translationString[iii].toUpperCase();
}

我无法弄清楚“iii”的价值没有增加的原因。有工作吗或我完全错过了什么?

JSFiddle

2 个答案:

答案 0 :(得分:0)

您必须将值分配回变量:

//What you're doing:
iii + 2 // The value of iii + 2.  Won't update iii

//What you want to do:
iii += 2 // assign the value of iii + 2 back into your iterator.

在你发布的例子中,你只是简单地给计算机一些数学计算:iii + 2.它会使iii + 2运行并继续前进;基本上它是一个无操作。

  

+ =运算符是右侧增加左侧的简写。

     

即。 iii + = 2相当于iii = iii + 2

答案 1 :(得分:0)

  

iii + 2; //这只会为新分配的值增加2,也就是说,它会是这样的:

     

var iii = 1;

     

var other = iii + 2; //其他的值现在为3(1 + 2)

要增加,必须使用增量运算符:

  

iii ++; //每次增加iii的值

     

iii + = 2或iii = iii + 2; //每次增加iii 2的值,也就是说,它将是2,4,6,8 ......

select name, id, state, stateID, region, SUM(sales) AS sales
    from table1 taba
    left join table2 tabb
    on taba.state = tabb.state
    left join table3 tabc
    on tabb.stateid = tabc.stateid
GROUP BY name, id, state, stateID, region
var splitUp = ["this", "is", "a!", "test."];

if (punctuation.indexOf(translationString[iii]) != -1) {
  console.log(iii+ ": " +translationString[iii]);
  console.log("iii is on: " + iii);
  iii += 2;
  console.log("after increment, iii is on: " + iii);
  translationString[iii].toUpperCase();
}

function capitalizeFirstLetter(string) 
{
   return string.charAt(0).toUpperCase() + string.slice(1);
}