首页 > 解决方案 > 数组可以存储在javascript中的函数中吗?

问题描述

我很好奇,数组可以存储在函数中吗?当我在我的函数中声明一个数组时。由于无法读取该值而出错,一旦我将其从函数中取出,则可以读取该值。

function decades(e) {
  var decadesArray = ["one decade",
  "two decades",
  "three decades",
  "four decades",
  "five decades",
  "six decades",
  "seven decades",
  "eight decades",
  "nine decades",
  "millennium"];

  for( var i = 0; i <= 100; i++) {
    if (i % 10 == 0) {
      console.log("decadesArray[0]");
    }
  }
}

几十年(一);

标签: javascriptarraysfunction

解决方案


您想要做的是在您的 if 语句中,每次 if 语句为真时移动/拼接出数组元素之一。在您的情况下,您每次都会移动第一个数组元素。

function decades(e) {
  var decadesArray = ["one decade",
  "two decades",
  "three decades",
  "four decades",
  "five decades",
  "six decades",
  "seven decades",
  "eight decades",
  "nine decades",
  "millenium"];

  for( var i = 0; i <= 100; i++) {
    console.log("Year: ",i);
    //check if i is greater than 0
    //otherwise when i is 0 will be considered
    //the first decade
    if (i % 10 == 0 && i>0) {
      console.log( decadesArray.shift(), i );
    }
  }
}
decades();console.log( decadesArray[i/10] || i );

如果您不想实际提取数组的每个元素,则可以将(i-10)/10其用作数组的索引并将其打印出来,如果该索引最终成为,undefined则只需打印该数字。

function decades(e) {
  var decadesArray = ["one decade",
  "two decades",
  "three decades",
  "four decades",
  "five decades",
  "six decades",
  "seven decades",
  "eight decades",
  "nine decades",
  "millenium"];

  for( var i = 0; i <= 100; i++) {
    console.log( decadesArray[(i-10)/10] || i );
  }
}
decades();


推荐阅读