【问题标题】:Order an array issues订购阵列问题
【发布时间】:2016-06-09 03:00:49
【问题描述】:

好的,所以我创建了一个成绩册。您添加您的名字和姓氏以及成绩,然后将其添加到表格中(当我在 Chrome 上运行时它有效,但由于某种原因在 jsfiddle 上无效。这不是问题)

https://jsfiddle.net/bhLhayar/

我遇到的问题是排序。我的单选按钮说“未定义”,但我认为我已经在我的 JS 中定义了它们。请指教?呵呵

function sortby(what){
if(what == 'firstN'){studentdata.sortbyfirstSet();}
if(what == 'lastN'){studentdata.sortbylastSet();}
if(what == 'gradeUp'){studentdata.sortbygradeSetUp();}
if(what == 'gradeDown'){studentdata.sortbygradeSetDown();}
updatetable()
}

这是我认为我出错的代码?与此有关:

sortbyFirstSet(){
        this.data.sort(function (one, two){
            if(one.firstName > two.firstName){return 1}
            if(one.firstName < two.firstName){return -1}
            if(one.firstName == two.firstName){return 0}
        });
    }
    sortbylastSet(){
        this.data.sort(function (one, two){
            if(one.lastName > two.lastName){return 1}
            if(one.lastName < two.lastName){return -1}
            if(one.lastName == two.lastName){return 0}
        });
    }
    sortbygradeSetUp(){
        this.data.sort(function (one, two){
            if(one.finalGrade > two.finalGrade){return 1}
            if(one.finalGrade < two.finalGrade){return -1}
            if(one.finalGrade == two.finalGrade){return 0}
        });
    }
  sortbygradeSetDown(){
    this.data.sort(function (one, two){
      if(one.finalGrade < two.finalGrade){return 1}
      if(one.finalGrade > two.finalGrade){return -1}
      if(one.finalGrade == two.finalGrade){return 0}
    });
  }

【问题讨论】:

  • 您所说的单选按钮是什么?我根本看不到任何 HTML 代码。
  • 我为 jsfiddle.net 放了一个链接
  • 至少在 jsFiddle 中,似乎没有一个 onclick="" 属性正常工作。使用.addEventListener 至少适用于Info Submit 按钮。
  • 谢谢,但提交信息不是我的问题。它可以在常规浏览器中运行,所以 jsfiddle 并没有让我出汗太多。主要集中在没有做他们应该做的单选按钮上。我难住了。可能很简单..哈哈
  • 另外,在单选按钮的onclick="" 属性中,您尝试传入未定义的变量而不是字符串。即:onclick="sortby(gradeUp)" 而不是:onclick="sortby('gradeUp')"

标签: javascript arrays function sorting


【解决方案1】:

您似乎将字符串作为变量传递。改用 onclick="sortby('lastN')" 等。

而且您没有可更新的功能。也许你想调用 updateGradebook()?

更新 还有一件事,您第一次调用 sort 方法时拼写错误。应该是 sortbyFirstSet

【讨论】:

  • 这不是问题的答案。
  • @TomBurris 似乎是因为他传递给方法的值是未定义的?
  • 您是否测试过是否能解决问题?不幸的是,它没有。这个脚本有很多问题,答案应该可以解决所有问题。
  • @TomBurris 它解决了他看到的错误,这是由于这个原因。这就是我相信的问题。
  • 现在答案填写得更多,可以认为是可行的。
【解决方案2】:

请将单选按钮上的 onclick 代码从 sortby(firstN) 更正为 sortby('firstN')。此外,studentdata 似乎是一个数组,您正在尝试使用它调用 sortby 函数。

【讨论】:

  • 这不是问题的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多