Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2018, 14:49
Новичок на форуме
Отправить личное сообщение для notOldFagFromRussia Посмотреть профиль Найти все сообщения от notOldFagFromRussia
 
Регистрация: 08.11.2018
Сообщений: 3

Как вывести имя объекта с максимальным значением из массива
Доброе.

Возникла такая проблема:

Из массива heroArr нужно вывести имя (name) объекта с максимальным value.

var heroArr = [
	{'name': 'ironman', 'value': 0 },
	{'name': 'cap', 'value': 0 },
	{'name': 'hawkeye', 'value': 3 },
	{'name': 'widow', 'value': 0 },
	{'name': 'thor', 'value': 0 },
	{'name': 'hulk', 'value': 0 },
];


В примере выше должно вывести hawkeye.


Находим максимальное значение среди всех ответов:

var maxAnswer = Math.max(heroArr.map(answer => answer.value), 0);


И создаем массив с объектами, у которых value максимальное:

var result = heroArr.filter(answer => answer.value == maxAnswer);


По итогу

function getResult() {
	for (answer of result) {
		alert('Поздравляю, сынок. Теперь ты: ' + answer.name);
     }
};


должен быть alert выводящий hawkeye.

Но по факту не выводит вообще ничего.
И ошибок в консоли нет.

Подскажите в чем проблема может быть.
Или свой вариант в студию)
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2018, 15:03
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

notOldFagFromRussia,
var maxAnswer = Math.max(...heroArr.map(answer => answer.value));

Math.max - принимает аргументы по отдельности, а не массив.

Последний раз редактировалось j0hnik, 14.11.2018 в 15:13.
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2018, 15:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от j0hnik
, 0
лишнее!!!
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2018, 15:13
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
да
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2018, 15:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от notOldFagFromRussia
Или свой вариант
const heroArr = [
	{'name': 'ironman', 'value': 0 },
	{'name': 'cap', 'value': 0 },
	{'name': 'hawkeye', 'value': 3 },
	{'name': 'widow', 'value': 0 },
	{'name': 'thor', 'value': 0 },
	{'name': 'hulk', 'value': 0 },
];
function getResult(arr) {
   return arr.reduce((a,b) => a.value > b.value ? a : b)
};

const  answer = getResult(heroArr);
alert('Поздравляю, сынок. Теперь ты: ' + answer.name);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как вывести все свойства объекта? tiho Общие вопросы Javascript 17 15.11.2015 20:50
Как получить свойсвто объекта? Armen Общие вопросы Javascript 4 19.10.2014 06:45
Как улучшить сортировку массива? Armen Общие вопросы Javascript 3 12.10.2014 20:17
Как вывести данные из PHP Sherminator Events/DOM/Window 2 07.08.2012 20:11
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00