首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON/JavaScript功能/实现

JSON/JavaScript功能/实现
EN

Stack Overflow用户
提问于 2016-11-28 12:10:31
回答 2查看 81关注 0票数 1

这段代码应该是:从对象中找到与所选按钮的日期匹配的课程(例如,星期一);然后根据开始时间对该列表进行排序。由于对象中信息的性质,我将它们转换为军事等价物,以便进行比较。完成后,它应该最终显示排序的课程列表以及语句中指定的信息。

但是,当我选择一个按钮时,什么也没有发生。没有显示任何内容,在编译代码时也不会得到任何错误。

代码语言:javascript
复制
var courses = [
  {
    "dept": "CSC",
    "id": "3102",
    "instructor": "Kooima",
    "Location": "230 Turead",
    "Start_Time": "1130",
    "End_Time": "1230",
    "Attendance": "Tuesday",
    "Full_Name": "Advanced Data Structures and Algorithm Analysis"
  },
  {
    "dept": "CSC",
    "id": "1200",
    "instructor": "Duncan",
    "Location": "420 PFT",
    "Start_Time": "1030",
    "End_Time": "1130",
    "Attendance": "Monday",
    "Full_Name": "Ethics in Computer Science"
  },
  {
    "dept": "CSC",
    "id": "4330",
    "instructor": "Mahmoud",
    "Location": "150 Coates",
    "Start_Time": "12:30",
    "End_Time": "1:30",
    "Attendance": "Thursday",
    "Full_Name": "Software Systems Development"
  },
  {
    "dept": "MATH",
    "id": "1550",
    "instructor": "Tom",
    "Location": "012 Lockett",
    "Start_Time": "12:30",
    "End_Time": "1:30",
    "Attendance": "Wednesday",
    "Full_Name": "Calculus"
  },
  {
    "dept": "ENGL",
    "id": "2000",
    "instructor": "McKinnon",
    "Location": "012 Allen Hall",
    "Start_Time": "9:30",
    "End_Time": "10:30",
    "Attendance": "Friday",
    "Full_Name": "English Composition"
  },
  {
    "dept": "THTR",
    "id": "1020",
    "instructor": "King",
    "Location": "619 MDMA",
    "Start_Time": "8:30",
    "End_Time": "9:30",
    "Attendance": "Wednesday",
    "Full_Name": "Introduction to Theatre"
  }

];

var courseDayList = new Array();

function converTime(time) {
  var numericTime = 0;
  if (time == "8:30") numericTime = 830;
  if (time == "9:30") numericTime = 930;
  if (time == "10:30") numericTime = 1030;
  if (time == "11:30") numericTime = 1130;
  if (time == "12:30") numericTime = 1230;
  return numericTime;
}

function showCourseFromDay(day) {
  var i;
  for (i = 0; i<courses.length; i++) {
    var course = courses[i];
    console.log(course);
    if (course.Attendance == day) {
      courseDayList.push(course);
    }
  }
  courseDayList.bubbleSort = new function () {
    var swapped;
    do {
      swapped = false;
      for (var i = 0; i < courseDayList.length - 1; i++) {
        var time1 = convertTime(courseDayList[i].Start_Time);
        var time2 = convertTime(courseDayList[i + 1].Start_Time);
        if (time1 > time2) {
          var temp = courseDayList[i];
          courseDayList[i] = courseDayList[i + 1];
          courseDayList[i + 1] = temp;
          swapped = true;
        }
      }
    } while (swapped);
  }
  courseDayList.bubbleSort();
  courseDayList.printCourses = new function () {
    var counter = 0;
    while (counter == courseDayList.length) {
      var courseName = document.getElementById("cName");
      var courseTime = document.getElementById("cTime");
      var courseLocation = document.getElementById("cLocation");
      courseName.innerHTML = courseDayList[counter].dept + " " + courseDayList[counter].id + "- " + courseDayList[counter].Full_Name + "<br />";
      courseTime.innerHTML = courseDayList[counter].Start_Time + "-" + courseDayList[counter].End_Time + "<br />";
      courseLocation.innerHTML = courseDayList[counter].Location;
      counter++;
    }
  }
  courseDayList.printCourses();
}


<div class="panel panel-default">
    <div class="panel-heading">
        <h4>Today's Schedule</h4>
        <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Monday')">Monday</button>
        <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Tuesday')">Tuesday</button>
        <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Wednesday')">Wednesday</button>
        <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Thursday')">Thursday</button>
        <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Friday')">Friday</button>
    </div>
    <div class="panel-body">
        <div style="border-color:rebeccapurple"></div>
        <ul class="list-group" ng-repeat="course in schedule">
            <li class="list-group-item">
                <h4 id="cName"></h4>
                <p id="cTime"></p>
                <p id="cLocation"></p>
            </li>
        </ul>
    </div>
</div>
EN

回答 2

Stack Overflow用户

发布于 2016-11-28 13:54:29

代码语言:javascript
复制
var courses = [
  {
    "dept": "CSC",
    "id": "3102",
    "instructor": "Kooima",
    "Location": "230 Turead",
    "Start_Time": "1130",
    "End_Time": "1230",
    "Attendance": "Tuesday",
    "Full_Name": "Advanced Data Structures and Algorithm Analysis"
  },
  {
    "dept": "CSC",
    "id": "1200",
    "instructor": "Duncan",
    "Location": "420 PFT",
    "Start_Time": "1030",
    "End_Time": "1130",
    "Attendance": "Monday",
    "Full_Name": "Ethics in Computer Science"
  },
  {
    "dept": "CSC",
    "id": "4330",
    "instructor": "Mahmoud",
    "Location": "150 Coates",
    "Start_Time": "12:30",
    "End_Time": "1:30",
    "Attendance": "Thursday",
    "Full_Name": "Software Systems Development"
  },
  {
    "dept": "MATH",
    "id": "1550",
    "instructor": "Tom",
    "Location": "012 Lockett",
    "Start_Time": "12:30",
    "End_Time": "1:30",
    "Attendance": "Wednesday",
    "Full_Name": "Calculus"
  },
  {
    "dept": "ENGL",
    "id": "2000",
    "instructor": "McKinnon",
    "Location": "012 Allen Hall",
    "Start_Time": "9:30",
    "End_Time": "10:30",
    "Attendance": "Friday",
    "Full_Name": "English Composition"
  },
  {
    "dept": "THTR",
    "id": "1020",
    "instructor": "King",
    "Location": "619 MDMA",
    "Start_Time": "8:30",
    "End_Time": "9:30",
    "Attendance": "Wednesday",
    "Full_Name": "Introduction to Theatre"
  }

];

var courseDayList = new [];

function convertTime(time) {
  var numericTime = 0;
  if (time == "8:30") numericTime = 830;
  if (time == "9:30") numericTime = 930;
  if (time == "10:30") numericTime = 1030;
  if (time == "11:30") numericTime = 1130;
  if (time == "12:30") numericTime = 1230;
  return numericTime;
}

function showCourseFromDay(day) {
  var i;
  for (i = 0; i<courses.length; i++) {
    var course = courses[i];
    console.log(course);
    if (course.Attendance == day) {
      courseDayList.push(course);
    }
  }
  courseDayList.bubbleSort =  function () {
    var swapped;
    do {
      swapped = false;
      for (var i = 0; i < courseDayList.length - 1; i++) {
        var time1 = convertTime(courseDayList[i].Start_Time);
        var time2 = convertTime(courseDayList[i + 1].Start_Time);
        if (time1 > time2) {
          var temp = courseDayList[i];
          courseDayList[i] = courseDayList[i + 1];
          courseDayList[i + 1] = temp;
          swapped = true;
        }
      }
    } while (swapped);
  }
  courseDayList.bubbleSort();
  courseDayList.printCourses = function () {
    var counter = 0;
    while (counter == courseDayList.length) {
      var courseName = document.getElementById("cName");
      var courseTime = document.getElementById("cTime");
      var courseLocation = document.getElementById("cLocation");
      courseName.innerHTML = courseDayList[counter].dept + " " + courseDayList[counter].id + "- " + courseDayList[counter].Full_Name + "<br />";
      courseTime.innerHTML = courseDayList[counter].Start_Time + "-" + courseDayList[counter].End_Time + "<br />";
      courseLocation.innerHTML = courseDayList[counter].Location;
      counter++;
    }
  }
  courseDayList.printCourses();
}

测试这是否有效。一些更正:

有些函数只是简单地创建一个函数,而不是简单地创建一个函数misspelled.

  • Syntax new function() {...

  1. a function is function() {... not function() {...
票数 1
EN

Stack Overflow用户

发布于 2016-11-28 14:06:50

有一些问题...

1) convertTime函数拼写错误

2)嵌套函数(printCourses和bubbleSort应该已经在全局范围内移出)

3) HTML中的列表结构只能支持单一输出

4)数组从未被清除过

5) printCourses函数永远不会运行,因为计数器(始终为0)是针对列表的大小(从不为0)进行测试的

这是给你的小提琴:

https://jsfiddle.net/jecfkoy7/

代码语言:javascript
复制
<div class="panel panel-default">
  <div class="panel-heading">
    <h4>Today's Schedule</h4>
    <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Monday')">Monday</button>
    <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Tuesday')">Tuesday</button>
    <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Wednesday')">Wednesday</button>
    <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Thursday')">Thursday</button>
    <button class="btn btn-default" type="submit" onclick="showCourseFromDay('Friday')">Friday</button>
  </div>
  <div class="panel-body">
    <div style="border-color:rebeccapurple"></div>
    <ul id="list" class="list-group" ng-repeat="course in schedule">
      <!--<li class="list-group-item">
        <h4 id="cName"></h4>
        <p id="cTime"></p>
        <p id="cLocation"></p>
      </li>-->
    </ul>
  </div>
</div>

var courses = [{
    "dept": "CSC",
    "id": "3102",
    "instructor": "Kooima",
    "Location": "230 Turead",
    "Start_Time": "1130",
    "End_Time": "1230",
    "Attendance": "Tuesday",
    "Full_Name": "Advanced Data Structures and Algorithm Analysis"
  }, {
    "dept": "CSC",
    "id": "1200",
    "instructor": "Duncan",
    "Location": "420 PFT",
    "Start_Time": "1030",
    "End_Time": "1130",
    "Attendance": "Monday",
    "Full_Name": "Ethics in Computer Science"
  }, {
    "dept": "CSC",
    "id": "4330",
    "instructor": "Mahmoud",
    "Location": "150 Coates",
    "Start_Time": "12:30",
    "End_Time": "1:30",
    "Attendance": "Thursday",
    "Full_Name": "Software Systems Development"
  }, {
    "dept": "MATH",
    "id": "1550",
    "instructor": "Tom",
    "Location": "012 Lockett",
    "Start_Time": "12:30",
    "End_Time": "1:30",
    "Attendance": "Wednesday",
    "Full_Name": "Calculus"
  }, {
    "dept": "ENGL",
    "id": "2000",
    "instructor": "McKinnon",
    "Location": "012 Allen Hall",
    "Start_Time": "9:30",
    "End_Time": "10:30",
    "Attendance": "Friday",
    "Full_Name": "English Composition"
  }, {
    "dept": "THTR",
    "id": "1020",
    "instructor": "King",
    "Location": "619 MDMA",
    "Start_Time": "8:30",
    "End_Time": "9:30",
    "Attendance": "Wednesday",
    "Full_Name": "Introduction to Theatre"
  }

];

var courseDayList = new Array();

convertTime = function(time) {
  var numericTime = 0;
  if (time == "8:30") numericTime = 830;
  if (time == "9:30") numericTime = 930;
  if (time == "10:30") numericTime = 1030;
  if (time == "11:30") numericTime = 1130;
  if (time == "12:30") numericTime = 1230;
  return numericTime;
}

bubbleSort = function() {
    var swapped;
    do {
      swapped = false;
      for (var i = 0; i < courseDayList.length - 1; i++) {
        var time1 = convertTime(courseDayList[i].Start_Time);
        var time2 = convertTime(courseDayList[i + 1].Start_Time);
        if (time1 > time2) {
          var temp = courseDayList[i];
          courseDayList[i] = courseDayList[i + 1];
          courseDayList[i + 1] = temp;
          swapped = true;
        }
      }
    } while (swapped);
  }

  printCourses = function() {
    var counter = 0;
    while (counter <= courseDayList.length - 1) {
      /*var courseName = document.getElementById("cName");
      var courseTime = document.getElementById("cTime");
      var courseLocation = document.getElementById("cLocation");*/
      var courseName = courseDayList[counter].dept + " " + courseDayList[counter].id + "- " + courseDayList[counter].Full_Name;
      var courseTime = courseDayList[counter].Start_Time + "-" + courseDayList[counter].End_Time;
      var courseLocation = courseDayList[counter].Location;

      var list = document.getElementById('list');
      var entry = document.createElement('li');
        entry.appendChild(document.createTextNode(courseName));
      entry.appendChild(document.createTextNode(courseTime));
      entry.appendChild(document.createTextNode(courseLocation));
        list.appendChild(entry);    

      counter++;
    }

  }

showCourseFromDay = function(day) {

    //Clear existing records
  var list = document.getElementById('list');
  while (list.firstChild) list.removeChild(list.firstChild);

  var i;
  for (i = 0; i < courses.length; i++) {
    var course = courses[i];
    console.log(course);
    if (course.Attendance == day) {
      courseDayList.push(course);
    }
  }

  bubbleSort();
  printCourses();
  courseDayList = new Array();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40837057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档