【问题标题】:Compare values in two arrays [duplicate]比较两个数组中的值[重复]
【发布时间】:2015-12-19 02:29:23
【问题描述】:

我有两个数组。

    var letterGrades = ["A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D",  "D-"];
    var fall = ["Fall 2015", "A", "B", "A-"];

我需要做的是比较两个数组并打印出任何相等的值。

这是我迄今为止尝试过的......

function getGrades(semester){
if(semester === "Fall 2015"){
    for (var i = 1; i < 5; i++) {            
        for(var x = 0; x < letterGrades.length; x++){
            if(fall.data[0][i] == letterGrades[x]){
               console.log(fall.data[0][i]);
            }
        }
    }
}

getGrades("Fall 2015");

关于如何做到这一点的任何建议?现在,我没有得到任何回报。谢谢!

【问题讨论】:

  • 我不精通 js,也不确定这个答案到底能实现什么。我需要比较两个数组并返回 where letterGrades"A" == fall"A"
  • 为什么有人的成绩不在letterGrades 中?这有什么意义?
  • 什么是fall.datafall 是一个数组,而不是一个对象,它没有 data 属性。
  • 应该只是 fall[i] 我使用 Papaparse 来解析 fall 字符串,然后使用该 Json 对象来获取 fall 数组。关键是,我有第三个数组,其中包含 GPA 值。我需要将 fall 数组与 letterGrades 数组进行比较,然后相应地计算 GPA。
  • 基本算法是对的,它们的语法有错误。 fall.data[0][x] 应该是 fall[x]

标签: javascript html arrays loops


【解决方案1】:

您没有得到任何返回,因为访问数组 fall 时出错。这是一个一维数组,但您使用fall.data[0][i] 访问它。这会导致语法错误Uncaught SyntaxError: Unexpected end of input

您可以从索引 1 开始循环遍历秋季的每个元素,并在每次迭代中检查当前字符是否在 letterGrades 中,如下所示:

var letterGrades = ["A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D",  "D-"];
var fall = ["Fall 2015", "A", "B", "A-"];

function getGrades(semester){
    if(semester === "Fall 2015"){
        for (var i = 1; i < fall.length; i++) {            
            if (letterGrades.indexOf(fall[i]) >= 0) {
                console.log(fall[i]);
            }
        }
    }
}

getGrades("Fall 2015");

【讨论】:

  • 完美,谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多