[英]How do I filter marks greater than or equal to 90 in this array?
let students = [
{"Name": "Priya","marks": [50, 60, 70, 80, 90]},
{"Name": "Ankita","marks": [80, 90, 95]}
]
結果應該是這樣,
[{"Name": "Priya", "marks": [90]}, {"Name": "Ankita","marks": [90,95]}]
Nikhil的第一個答案將修改原始數組,不建議這樣做,因此您可以簡單地執行此操作。
let students = [
{"Name": "Priya","marks": [50, 60, 70, 80, 90]},
{"Name": "Ankita","marks": [80, 90, 95]}
]
現在,我要過濾大於或等於90的標記,代碼將如下所示。
students.map((student) => {
return {...student,
marks: student.marks.filter((mark) => mark >= 90)
}
})
// Result will be [{"Name": "Priya", "marks": [90]}, {"Name": "Ankita","marks": [90,95]}]
Spread operator
將擴展student
,然后將其marks key
替換為已filtered marks value
。
如果您不使用傳播運算符,
students.map((student) => student.marks.filter((mark) => mark >= 90))
// Result will be [[90],[90]]
然后,您將僅獲得過濾后的值,而不是尚未應用過濾器的值。
使用Array.filter可以根據條件過濾數組的值。
更新現有數組 (使用Array.forEach )
let students = [{"Name": "Priya","marks": [50, 60, 70, 80, 90]},{"Name": "Ankita","marks": [80, 90, 95]}]; students.forEach(o => o.marks = o.marks.filter(v => v >= 90)); console.log(students);
創建新數組 (使用Array.map和Object.assign )
let students = [{"Name": "Priya","marks": [50, 60, 70, 80, 90]},{"Name": "Ankita","marks": [80, 90, 95]}]; let result = students.map(o => Object.assign({}, o, {marks : o.marks.filter(v => v >= 90)})); console.log(result);
您可以使用.map()
.filter()
和Object.assign()
方法:
let data = [ {"Name": "Priya","marks": [50, 60, 70, 80, 90]}, {"Name": "Ankita","marks": [80, 90, 95]} ]; let result = data.map( o => Object.assign(o, {marks: o.marks.filter(v => v >= 90)}) ); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.