Фильтровать массив в JavaScript с 2 свойство - PullRequest
0 голосов
/ 24 сентября 2018

А вот и массив:

enter image description here

Если у кого-то результат + GMath больше, чем у других, я хочу поместить его первым в массиве.

Я делаю угловое приложение.Мне нужно отфильтровать его для приложения.Если вам нужен шаблон или файл ts, просто прокомментируйте ниже.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Что вам нужно сделать, это использовать sort , чтобы вычесть сумму a из суммы b следующим образом:

let arr = [
  {result: 5, GMath: 5},
  {result: 2, GMath: 8},
  {result: 4, GMath: 10},
  {result: 1, GMath: 1}
]

arr.sort((a, b) => (b.result + b.GMath) - (a.result + a.GMath))

console.log(arr)
0 голосов
/ 24 сентября 2018
// const obj = { admissionStudents: {...} }; // assuming this is the object to begin with
let keys = Object.keys(obj.admissionStudents);
keys.sort((a, b) => {
  return (obj.admissionStudents[b].result + obj.admissionStudents[b].GMath) - (obj.admissionStudents[a].result + obj.admissionStudents[a].GMath);
});

Теперь keys будет отсортировано, поэтому создайте кадр с помощью этого.

Новый список,

newList = [];
keys.forEach((key) => {
  newList.push(obj.admissionStudents[key]);
});

newList будет отсортированным списком.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...