首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历对象2的值,以查找它是否与对象1的min变量匹配

循环遍历对象2的值,以查找它是否与对象1的min变量匹配
EN

Stack Overflow用户
提问于 2019-10-03 01:03:14
回答 3查看 72关注 0票数 0

所以我真的坚持这个练习了几个小时。这个想法是为了找到也在研究最弱科目的朋友的名字。我这里有一段代码:

代码语言:javascript
复制
    const reportCard = {
  Biology: 85,
  English: 75,
  Economics: 90,
  History: 67,
  Philosophy: 98,
};


const subjects = {
  Dylan: 'Biology',
  Jen: 'English',
  Emily: 'Economics',
  Amy: 'History',
  Lenny: 'Philosophy',

};

console.log(studyBuddy(reportCard, subjects));

我已经实现了一个min变量来查找第一个对象中的最低等级,如下所示:

代码语言:javascript
复制
val = Object.values(reportCard)
    const min = Math.min(...val)

如何将第二个对象值与第一个匹配min变量的值进行匹配。不管怎样,我可以实现它吗?我只想要一个提示,我不想让别人帮我解决这个问题。

EN

回答 3

Stack Overflow用户

发布于 2019-10-03 02:16:49

我会试着帮助你,而不是实际解决任务。我将首先获取friends对象的键,遍历它们,并将其用作访问reportCard对象的键。让我给你举个简单的例子:

代码语言:javascript
复制
const studentNames = Object.keys(subjects); // all student names
studentNames.forEach(student => {
    const subjectValue = reportCard[student]; // now you have the value for every student
});

假设subject的最大值是100,您可以在第一步定义等于101的变量,如果有任何学生的值小于101,则在循环中检查它。我希望这会有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2019-10-03 02:25:08

我是这样实现的:

代码语言:javascript
复制
const studyBuddy = (reportCard, subjects) => {
  // Write code here
    val = Object.values(reportCard)
    const min = Math.min(...val)
    const weakestSubject = Object.keys(reportCard).find(key => reportCard[key] === min);

   for (let val in subjects){
     if (subjects[val] === weakestSubject){
       return val
     } else {
       return 'Me'
    }
  }
     };

挑战标准实际上是返回好友姓名,否则返回字符串'Me‘。我不知道为什么它会返回我?当我删除else语句时,它实际上返回了正确的名称。怎么了?

票数 0
EN

Stack Overflow用户

发布于 2019-10-04 14:12:34

我的想法是从对象‘reportCard’中获取最弱的主题名称;您可以遍历对象,标记分数最低的主题。现在,在从对象'reportCard‘获得最低分数之后,再次循环通过第二个对象'subjects’来检查谁被分配到该主题,这是我们通过循环通过对象'reportCard‘获得的最低分数。

代码语言:javascript
复制
const reportCard = {
 Biology: 85,
 English: 75,
 Economics: 90,
 History: 67,
 Philosophy: 98,
};


const subjects = {
    Dylan: 'Biology',
   Jen: 'English',
  Emily: 'Economics',
  Amy: 'History',
  Lenny: 'Philosophy',
 };

function studyBuddy(reportCard, subjects){
var weakestSubjectName = null;
var min = Number.MAX_VALUE;

for(var key in reportCard){
    // check every marks whether it is lowest than the prev lowest marks or not
    // if so, assign the subject name which has currently lowest marks
    if(reportCard[key] < min){
        min = reportCard[key];
        weakestSubjectName = key;
    }
}
// now you can loop through the second object, to get the name of person/friend who's studying the subject
 for(var key in subjects){
        if(subjects[key] === weakestSubjectName) return key;
 }
 return null;
}
 console.log(studyBuddy(reportCard, subjects));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58206097

复制
相关文章

相似问题

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