【问题标题】:How do I reference the index of an array without knowing what it is in Javascript?如何在不知道 Javascript 中的数组索引的情况下引用数组的索引?
【发布时间】:2017-03-05 17:18:57
【问题描述】:

我正在制作一个日历应用程序,我正在尝试验证输入的日期是否在当前学期,然后查看它是否是我们没有上课的假期。我有一个索引,其中包含我们外出的所有日期以及相应假期的名称,但是当我尝试使用 indexOf 时,代码坏了。 这是html:

<form onsubmit="holiday()" method="post">
  <fieldset>
    Enter Date: <input type='date' id="dat"><p>
    <input class="ubmit" type=submit >
  </fieldset>
</form>
<p id="output"></p>

这是js:

var dvalue = document.getElementById("dat").value;
function holiday(){
  var txt ="boo";
  dvalue=Date.parse(dvalue);
  console.log(dvalue);
  if (dvalue<1473033600000 || dvalue>1494979200000 || dvalue=="NaN"){
    txt="This is not a valid date for this calendar app";
  }
  else function validate(dvalue){
    var holidayz=new Array();
    holidayz[0]=["Columbus Day",1473033600000];
    holidayz[1]=["Fall Recess",1476057600000];
    holidayz[2]=["Thanksgiving Recess",1479859200000];
    holidayz[3]=["Thanksgiving Recess",1479945600000];
    holidayz[4]=["Thanksgiving Recess",1480032000000];
    holidayz[5]=["Thanksgiving Recess",1480118400000];
    holidayz[6]=["President's Day",1487548800000];
    holidayz[7]=["Spring Recess",1489363200000];
    holidayz[8]=["Spring Recess",1489449600000];
    holidayz[9]=["Spring Recess",1458000000000];
    holidayz[10]=["Spring Recess",1489622400000];
    holidayz[11]=["Spring Recess",1489708800000];
    holidayz[12]=["Reading Day",1494288000000];
    holidayz[13]=["Memorial Day",1496016000000];
    holidayz[14]=["Independence Day",1499126400000];
    if (holidayz.includes(dvalue)){
      var mydate = new Date(dvalue);
      console.log("<p>" + mydate + "<p>");
      var day = mydate.getUTCDate();
      var month = mydate.getMonth()+1;
      var year = mydate.getFullYear();
      console.log (month + "/" + day +"/" + year);
      var holival= asList(holidayz).indexOf(dvalue);
      console.log(holival)
    }
}

  console.log(txt)
  document.getElementById("output").innerHTML = txt;
}

【问题讨论】:

  • 而不是数组数组,为什么不使用对象数组,它可以给你命名键?
  • 我正在做的作业要求我使用多维数组。
  • 这似乎是多余的,但还可以

标签: javascript arrays validation multidimensional-array indexing


【解决方案1】:

试试这个,

var dvalue = document.getElementById("dat").value;

function holiday(){
    var txt ="boo";
    dvalue=Date.parse(dvalue);
    console.log(dvalue);
    if (dvalue<1473033600000 || dvalue>1494979200000 || dvalue=="NaN"){
        txt="This is not a valid date for this calendar app";
    } else {
        var holidayz=new Array();
        holidayz[0]=["Columbus Day",1473033600000];
        holidayz[1]=["Fall Recess",1476057600000];
        holidayz[2]=["Thanksgiving Recess",1479859200000];
        holidayz[3]=["Thanksgiving Recess",1479945600000];
        holidayz[4]=["Thanksgiving Recess",1480032000000];
        holidayz[5]=["Thanksgiving Recess",1480118400000];
        holidayz[6]=["President's Day",1487548800000];
        holidayz[7]=["Spring Recess",1489363200000];
        holidayz[8]=["Spring Recess",1489449600000];
        holidayz[9]=["Spring Recess",1458000000000];
        holidayz[10]=["Spring Recess",1489622400000];
        holidayz[11]=["Spring Recess",1489708800000];
        holidayz[12]=["Reading Day",1494288000000];
        holidayz[13]=["Memorial Day",1496016000000];
        holidayz[14]=["Independence Day",1499126400000];
        holidayz[15]=["Test Day",1476921600000];

        for(var i=0; i<holidayz.length; i++){
            if ((holidayz[i][1])==dvalue){
            var mydate = new Date(dvalue);
            console.log("<p>" + mydate + "<p>");
            var day = mydate.getUTCDate();
            var month = mydate.getMonth()+1;
            var year = mydate.getFullYear();
            console.log (month + "/" + day +"/" + year);
            var holival= i; //asList(holidayz).indexOf(dvalue);
            console.log(holival);
            break;
        }
     }
    }
    console.log(txt);
}

【讨论】:

  • 由于某种原因,holival 没有在控制台中打印。
  • @Harmony 你能告诉我们你的控制台输出吗?
  • NaN boo 导航到 file:///C:/Users/Harmony/Desktop/webdesign/calendar/calendar.html?
  • 我不确定你能看到这个,但希望你能看到这是作业的链接。 i6.cims.nyu.edu/~hrb281/calendar/calendar.html
  • @Harmony 看到图片这就是我得到的。我认为您的代码正在运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 2015-11-14
  • 2016-07-21
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多