假設我有這個資料
| 名稱 | 標記 |
|---|---|
| 約翰 | 76 |
| 杰克 | 55 |
| 達尼 | 90 |
和等級
| 分數 | 年級 |
|---|---|
| 100-80 | 一個 |
| 79 - 60 | 乙 |
| 59 - 40 | C |
假設我將腳本宣告為
let data = [
[John, 76],
[Jack, 55],
[Dani, 90]
];
程式應該用相應的分數分配成績,我如何對成績進行排序,因為我們知道我們不能像往常一樣更改分數的索引,因為每個分數分配給不同的學生?輸出應該在顯示所有資料降序作為
| 名稱 | 標記 | 年級 |
|---|---|---|
| 達尼 | 90 | 一個 |
| 約翰 | 76 | 乙 |
| 杰克 | 55 | C |
uj5u.com熱心網友回復:
我會將其分解為不同的功能,以便您可以分別處理每個任務。然后您可以將它們組合起來以產生您想要的結果,如下所示:
const grades = [
['A', 80],
['B', 60],
['C', 40],
];
function getGrade (mark) {
for (const [grade, minMark] of grades) {
if (mark < minMark) continue;
return grade;
}
return 'F'; // use minimum grade as default if mark is too low
}
function mapToObject ([name, mark]) {
return {grade: getGrade(mark), name, mark};
}
function sortByHighestMark (a, b) {
return b.mark - a.mark;
}
const data = [
['John', 76],
['Jack', 55],
['Dani', 90]
];
const result = data.map(mapToObject).sort(sortByHighestMark);
console.log(result);
// and data is unmodified:
console.log(data);
uj5u.com熱心網友回復:
如果您的意思是您期望輸出如下:
Dani - A
John - B
Jack - C
然后我會做類似的事情:
一個方法:
getGrade(points => {
if(points >= 80 && points <= 100) return 'A'
if(points >= 60 && points < 80) return 'B'
return 'C'
})
然后有資料:
const data = [
{name: 'John', value: 76},
{name: 'Jack', value: 55},
{name: 'Dani', value: 90},
]
然后就這樣做:
data.sort((student1, student2) => {
if(getGrade(student1.value) === student2.value) return 0
return (getGrade(student1.value) > getGrade(student2.value))? 1 : -1
})
我希望我理解你正確嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/381600.html
標籤:javascript 多维数组
下一篇:如何使用智能合約獲得正確的余額?
