Как найти максимальное значение в массиве из нескольких ключей?

Чтобы избежать изменения структуры, я предпочитаю использовать метод Object.assign для извлечения объекта. Этот метод объединяет второй объект параметра в первом. Чтобы получить объектные методы, нам просто нужен пустой новый объект, который используется в качестве целевого параметра.

var mo = window.localStorage.getItem("myObject");
// this object has properties only
mo = JSON.parse(mo);
// this object will have properties and functions
var completeObject = Object.assign(new MyObject(), mo);

Обратите внимание, что первый параметр Object.assign изменен и возвращен функцией.

0
задан mhodges 17 January 2019 в 16:56
поделиться

2 ответа

Вы можете сделать это, используя функцию .reduce() массива очень легко, например так:

Идея состоит в том, чтобы отслеживать объект с наибольшим количеством и сравнивать его с каждым из элементов. в списке. Функция Reduce вернет элемент с наибольшим количеством, когда он прошел весь список. Аналогично, во втором примере, приведенном ниже, вы можете просто получить число, используя Math.max() для сравнения всех подсчетов.

var data = [
  {_id: "item1", count: 300},
  {_id: "item2", count: 265},
  {_id: "item3", count: 410},
  {_id: "item4", count: 115},
  {_id: "item5", count: 395},
];

var highestCountObject = data.reduce((res, item) => item.count > res.count ? item : res, {count: -Infinity});

console.log(highestCountObject);

var highestNumber = Math.max(...data.map(item => item.count));

console.log(highestNumber);

0
ответ дан mhodges 17 January 2019 в 16:56
поделиться

Используйте цикл for для отслеживания максимального значения в переменной.

let obj = [{_id: "aspheresis platelets", count: 264},{_id: "cryoprecipitate",count: 330}]

let max = -Infinity

for( let i=0; i< obj.length; i++){
  if(obj[i].count > max) {
    max = obj[i].count; 
  } 
}
console.log(max)

Сортировать в порядке убывания. и затем счетчик доступа элемента индекса 0th.

let obj = [{_id: "aspheresis platelets", count: 264},{_id: "cryoprecipitate",count: 330}]
 
let op = obj.sort((a,b)=> b.count-a.count)[0].count
 
console.log(op)

0
ответ дан Code Maniac 17 January 2019 в 16:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: