Javascript 如何从1而不是0启动数组 var级别=[“幼儿园”、“小学”]; 风险值年数=[]; 年份[0]=“1”、“2”、“3”]; 年份[1]=“1”、“2”、“3”、“4”、“5”、“6”]; 对于(变量i=0;i0){ yearsSelect.removeChild(yearsSelect.childNodes[0]); } var yearsList=years[document.getElementById(“level”).selectedIndex]; 对于(变量i=0;i(i+1)): var级别=[“幼儿园”、“小学”]; 风险值年数=[]; 年份[0]=“1”、“2”、“3”]; 年份[1]=“1”、“2”、“3”、“4”、“5”、“6”]; 对于(变量i=0;i0){ yearsSelect.removeChild(yearsSelect.childNodes[0]); } var yearsList=years[document.getElementById(“level”).selectedIndex]; 对于(变量i=0;i

Javascript 如何从1而不是0启动数组 var级别=[“幼儿园”、“小学”]; 风险值年数=[]; 年份[0]=“1”、“2”、“3”]; 年份[1]=“1”、“2”、“3”、“4”、“5”、“6”]; 对于(变量i=0;i0){ yearsSelect.removeChild(yearsSelect.childNodes[0]); } var yearsList=years[document.getElementById(“level”).selectedIndex]; 对于(变量i=0;i(i+1)): var级别=[“幼儿园”、“小学”]; 风险值年数=[]; 年份[0]=“1”、“2”、“3”]; 年份[1]=“1”、“2”、“3”、“4”、“5”、“6”]; 对于(变量i=0;i0){ yearsSelect.removeChild(yearsSelect.childNodes[0]); } var yearsList=years[document.getElementById(“level”).selectedIndex]; 对于(变量i=0;i,javascript,arrays,Javascript,Arrays,我不想要值0。我希望两个数组都从值1开始 <script> var level = ["Kindergarten", "ElemantarySchool"]; var years = []; years[0] = ["1", "2", "3"]; years[1] = ["1", "2", "3", "4", "5", "6"]; for (var i = 0; i < level.length; i++){

我不想要值0。我希望两个数组都从值1开始

<script>
      var level = ["Kindergarten", "ElemantarySchool"];
      var years = [];
      years[0] = ["1", "2", "3"];
      years[1] = ["1", "2", "3", "4", "5", "6"];

      for (var i = 0; i < level.length; i++){
           var levelOption = new Option(level[i], i);
           document.getElementById("level").appendChild(levelOption);
      }
      changeyears();
      function changeyears() {
           var yearsSelect = document.getElementById("years");
           while (yearsSelect.childNodes.length > 0) {
                  yearsSelect.removeChild(yearsSelect.childNodes[0]);
           }
           var yearsList = years[document.getElementById("level").selectedIndex];
           for (var i = 0; i < yearsList.length; i++) {
               document.getElementById("years").appendChild(new Option(yearsList[i], i));
           }
      }
</script>

1.
1.
1.

数组索引不能从0更改,我们必须编写一个逻辑来以这种方式访问索引,访问时您可以根据需要对其进行操作

为什么数组索引应该从零开始不是一个简单的问题,它与计算机科学中有趣的概念有关。首先,它与语言设计有着密切的关系。例如,在C语言中,数组的名称本质上是一个指针,一个对内存位置的引用,因此表达式array[n]指的是一个内存位置,距离起始元素有n个元素。这意味着索引用作偏移量。数组的第一个元素正好包含在数组引用的内存位置(0个元素之外),因此它应该表示为数组[0]。大多数编程语言都是以这种方式设计的,因此从0进行索引几乎是该语言的固有特性

对此已经有很多讨论,您只需替换(i->(i+1)):


var级别=[“幼儿园”、“小学”];
风险值年数=[];
年份[0]=“1”、“2”、“3”];
年份[1]=“1”、“2”、“3”、“4”、“5”、“6”];
对于(变量i=0;i0){
yearsSelect.removeChild(yearsSelect.childNodes[0]);
}
var yearsList=years[document.getElementById(“level”).selectedIndex];
对于(变量i=0;i
在fiiddle.net中发布您的工作代码,并解释您遇到的问题。您只需替换:
document.getElementById(“年”).appendChild(新选项(yearsList[i],(i+1)),如果我understand@ThadsanasitPeangkaew欢迎来到StackOverflow。一旦SheraliTurdiyev写下他的答案,你就可以接受它(通过点击他答案旁边的复选框)。此外,避免像“谢谢”这样的评论;相反,您可以通过单击问题旁边的向上箭头来对答案(和问题)进行向上投票。没错,但与大多数其他语言不同,Javascript中的数组除了“具有以0开头的数字索引的属性的对象”之外没有特殊意义。Javascript有一个简单的机制,让对象以1开始索引。
<select name="years">
    <option value="0">1</option>
    <option value="0">1</option>
    <option value="0">1</option>
</select>
<script>
      var level = ["Kindergarten", "ElemantarySchool"];
      var years = [];
      years[0] = ["1", "2", "3"];
      years[1] = ["1", "2", "3", "4", "5", "6"];

      for (var i = 0; i < level.length; i++){
           var levelOption = new Option(level[i], (i+1));
           document.getElementById("level").appendChild(levelOption);
      }
      changeyears();
      function changeyears() {
           var yearsSelect = document.getElementById("years");
           while (yearsSelect.childNodes.length > 0) {
                  yearsSelect.removeChild(yearsSelect.childNodes[0]);
           }
           var yearsList = years[document.getElementById("level").selectedIndex];
           for (var i = 0; i < yearsList.length; i++) {
               document.getElementById("years").appendChild(new Option(yearsList[i], (i+1)));
           }
      }
</script>