Javascript 用于更改变量名的循环

Javascript 用于更改变量名的循环,javascript,for-loop,google-apps-script,google-sheets,Javascript,For Loop,Google Apps Script,Google Sheets,我想创建一个for循环,用不同的变量名执行相同的操作。例如;在下面的代码中,我将循环代码6次,单词“civil”的每个实例都将根据数组中的值而变 civilSheet.activate(); //grab values from column A and determine which rows the Hot List, Coordination Items, and Responsibilities information var civilData = civilSheet.get

我想创建一个for循环,用不同的变量名执行相同的操作。例如;在下面的代码中,我将循环代码6次,单词“civil”的每个实例都将根据数组中的值而变

civilSheet.activate();
  //grab values from column A and determine which rows the Hot List, Coordination Items, and Responsibilities information
  var civilData = civilSheet.getRange('A:A').getValues();
  for(var j=0;j<civilData.length;j++){
    if(civilData[j] == "~Hot List~"){
      var civilHot = j+3;
    } else if(civilData[j] == "~Coordination Items~"){
      var civilCoord = j+1;
    } else if(civilData[j] == "~Responsibilities~"){
      var civilResp = j+1;
    }
  }
civilSheet.activate();
//从列A中获取值,并确定热列表、协调项和职责信息的行
var civilData=civilSheet.getRange('A:A').getValues();

for(var j=0;j您不需要动态变量名称。您需要变量来动态引用不同的对象。您只需添加一个带有数组的for-other循环即可重用相同的代码

假设
变量名称
图纸名称

const sheetNames = ['civil', 'struct', 'avl', 'fpm', 'electrical', 'arch'];
const ss = SpreadsheetApp.getActive();
for (let si = 0; si < sheetNames.length; si++) {
  let thisSheet = ss.getSheetByName(sheetNames[si]);
  let thisData = thisSheet.getRange('A:A').getValues();
  for (let j = 0; j < thisData.length; j++) {
    if (thisData[j][0] == '~Hot List~') {
      let thisHot = j + 3;
    } else if (thisData[j][0] == '~Coordination Items~') {
      let thisCoord = j + 1;
    } else if (thisData[j][0] == '~Responsibilities~') {
      let thisResp = j + 1;
    }
  }
}
const sheetNames=['civil'、'struct'、'avl'、'fpm'、'electrical'、'arch'];
const ss=SpreadsheetApp.getActive();
对于(设si=0;si
JavaScript没有动态变量名。它有计算属性,但这是另一回事。看在每个人的份上,为什么变量名很重要?只有阅读代码的人才能看到它。运行代码的内容不关心变量的命名方式,只有变量持有的数据相关。我同意@Oleg-dynamic变量名是个坏主意。你能在这里使用字典吗?比如
data[“civil”][0]
?@Mike67-hm,似乎OP甚至不需要字典,我看不出由
civilHot
等保存的数据在哪里依赖于
I
的值。可能没有数据样本,它仍然是个谜。最终目标是找到一种通过循环运行代码6次的方法,而不是复制和粘贴sam用不同的变量名编码6次。@ChrisMMgr代码缩短是一个很好的尝试。但创建变量不是。变量
[“civil”、“struct”、“avl”、“fpm”、“electrical”、“arch”]
应该代表什么?可以用简单的for循环来完成。你可能想得太多了。
const sheetNames = ['civil', 'struct', 'avl', 'fpm', 'electrical', 'arch'];
const ss = SpreadsheetApp.getActive();
for (let si = 0; si < sheetNames.length; si++) {
  let thisSheet = ss.getSheetByName(sheetNames[si]);
  let thisData = thisSheet.getRange('A:A').getValues();
  for (let j = 0; j < thisData.length; j++) {
    if (thisData[j][0] == '~Hot List~') {
      let thisHot = j + 3;
    } else if (thisData[j][0] == '~Coordination Items~') {
      let thisCoord = j + 1;
    } else if (thisData[j][0] == '~Responsibilities~') {
      let thisResp = j + 1;
    }
  }
}