Поиск минимального значения в массиве объектов? Здравствуйте, я не могу сообразить, как это сделать:
Задача: Вася ищет наименьший вариант, у него массив var array = [
{ base : 10, upOne: 2, upTwo: 5, upThree: 9}, // 26
{ base : 14, upOne: 1, upTwo: 3, upThree: 5}, // 23
{ base : 11, upOne: 2, upTwo: 3, upThree: 9} // 25
]
Он на сайте выбирает свою Цель, ему выдается предварительный вариант объекта с наименьшим base значением. (это реализовал)
Потом он докручивает свою цель чекбоксами которые поднимают его base значение.
До меня дошло, что вторым шагом он выбирает какие чекбоксы активировать: upOne/upTwo/upThree и может оказаться так, что выгоднее для Васи вариант не с наименьшим base значением.
ВОПРОС: Как правильно выдавать Васе лучший вариант из масcива с учетом выбранных его чекбоксов?
Вот мои мысли:
0. Получить массив с объектами
1. Найти объект с наименьшим максимальным значением array[1]
2. Выдать Васе base значение array[1].base // 14
3. Показать Васе соответствующие значения чекбоксов выбранного объекта array[1].upOne, array[1].upTwo, array[1].upThree
4. Если чекбокс активирован ( upOne == true ) то вернуться на шаг 1 и найти объект с наименьшим значением base + upOne// Вот что то мне подсказывает, тут я не туда свернул.

21 Авг 2019 в 06:25
180 +1
0
Ответы
1

Для нахождения лучшего варианта из массива объектов с учетом выбранных чекбоксов Васи, вам необходимо следовать следующим шагам:

Получить массив с объектами.Найти объект с наименьшим значением свойства base и сохранить его данные.Далее, учитывая выбранные чекбоксы Васей (например, upOne и upTwo), вычислить сумму base и соответствующих им свойств upOne и upTwo для каждого объекта в массиве.Найти объект с наименьшим значением полученной суммы и вернуть его Васе как лучший вариант.Показать Васе данные найденного объекта, включая значения чекбоксов.

Пример реализации на JavaScript:

var array = [
{ base : 10, upOne: 2, upTwo: 5, upThree: 9},
{ base : 14, upOne: 1, upTwo: 3, upThree: 5},
{ base : 11, upOne: 2, upTwo: 3, upThree: 9}
];
function findBestOption(checkboxSelection) {
let minOption = array.reduce((min, obj) => obj.base < min.base ? obj : min, array[0]);
let minSum = minOption.base + minOption[checkboxSelection[0]] + minOption[checkboxSelection[1]];
array.forEach(obj => {
let sum = obj.base + obj[checkboxSelection[0]] + obj[checkboxSelection[1]];
if (sum < minSum) {
minOption = obj;
minSum = sum;
}
});
return minOption;
}
// Пример выбора чекбоксов upOne и upTwo
let selectedCheckboxes = ['upOne', 'upTwo'];
let bestOption = findBestOption(selectedCheckboxes);
console.log(bestOption);

Этот код позволит найти лучший вариант из массива объектов с учетом выбранных чекбоксов Васи и вернуть его для отображения. Вы можете адаптировать его в соответствии с вашими потребностями и добавить дополнительные функции при необходимости.

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 231 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир