处理动态值变量

时间:2018-04-23 10:29:12

标签: javascript

我的代码中有一组变量。

var image1Index = 0;
var image2Index = 1;
var image3Index = 2;
var image4Index = 3;
var image5Index = 4;
var image6Index = 5;
var image7Index = 6;
var image8Index = 7;
var image9Index = 8;
var image10Index = 9;

我使用这些变量可以更容易地更改值,而无需在我的其余代码中更改为mutch。 我遇到的问题是我不断重复自己。

所以我有一个设置变量正确值的函数。

function setCorrectIndexDown(index,place){
  var numberOfPlaceholders = 10
  if ((index - numberOfPlaceholders) < place){
    return  place;
  }
  else{
    return  (index - numberOfPlaceholders) %  imageArray.length ;
  }
}

之后我对每个变量使用此函数。

image1Index = setCorrectIndexDown(image1Index,0);
image2Index = setCorrectIndexDown(image2Index,1);
image3Index = setCorrectIndexDown(image3Index,2);
image4Index = setCorrectIndexDown(image4Index,3);
image5Index = setCorrectIndexDown(image5Index,4);
image6Index = setCorrectIndexDown(image6Index,5);
image7Index = setCorrectIndexDown(image7Index,6);
image8Index = setCorrectIndexDown(image8Index,7);
image9Index = setCorrectIndexDown(image9Index,8);
image10Index = setCorrectIndexDown(image10Index,9);

如你所见,我会这样重复自己。 我正在寻找一种方法来缩短它并在几行中做同样的事情,而不需要重复自己来做变异。

几天前我找到了eval()函数,这看起来像我的解决方案,因为我可以将字符串中的东西包装起来并在这样的循环中更改此字符串

for(i = 0; i < 10; i++){
  eval(`image${i+1}Index = setCorrectImageDown(image${i+1}Index, i)`);
}

但后来我确实读到了风险因此决定不使用eval()来实现我的目标。

因此,如果我不使用eval,那么在几行而不是重复代码行中执行相同操作的最实用的方法是什么?

提前感谢您的帮助和建议。

0 个答案:

没有答案