Поиск минимального значения в массиве объектов? Здравствуйте, я не могу сообразить, как это сделать:
Задача: Вася ищет наименьший вариант, у него массив 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
205 +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 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир