簡體   English   中英

如何使用 filter()、map() 處理數組的值? JavaScript

[英]How to use filter(), map() to work with values fo an array? JavaScript

我的任務是:

實現 function duplicateStudents(),它獲取變量“students”並過濾具有相同入學人數的學生。 首先,按入學人數投影學生的所有元素。 之后,您可以相對輕松地過濾重復項。 最后項目使用以下格式:{ matrikelnummer: (matrikelnummer), students: [ (students[i], students[j], ... ) ] }。

實現 invalidGrades() function,它獲取變量“等級”並過濾可能不正確的音符。 例如,為了盡量減少人工檢查,function 應確定為同一課程傳輸多個等級的預科編號。 示例:對於預科編號 X,課程 Y 傳輸了 2.7 和 2.3。但是,function 也會考慮有效情況,即對於預科編號 X,一次是 5,0,一次是 2 ,3 為課程 Y 傳輸。

在此任務中,您應該只使用 map()、reduce() 和 filter()。 不要實現 for 循環。

function duplicateStudents(students) {
  return students
    // TODO: implement me
}

function invalidGrades(grades) {
  return grades
    .map((s) => {
      // TODO: implement me

      return {
        matrikelnummer: -1/* put something here */,
        grades: []/* put something here */,
      };
    })
    .filter((e) => e.grades.length > 0)
}

我在一個單獨的文件中的變量學生和成績。 我知道上傳文件也可能會有所幫助,但一個是 1000 行長,另一個是 500 行。這就是我不上傳它們的原因。 但我希望可以在沒有價值觀的情況下完成任務。 重要的是要說這些值表示為一個數組在此處輸入圖像描述

我會給你一個在duplicateStudents上使用 reduce 的例子,它不會返回預期的格式,但你可以從那里 go 。

 const duplicateStudents = (students) => { const grouping = students.reduce((previous, current) => { if (previous[current.matrikelnummer]) previous[current.matrikelnummer].push(current); // add student if matrikelnummer already exist else previous[current.matrikelnummer] = [current]; return previous; }, {}); console.log(grouping); return //you could process `grouping` to the expected format in here };

以下是您的偏好:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM