Первый ответ 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]]
Тогда вы получите только отфильтрованные значения, а не значения, к которым вы не применили фильтр.