Для решения задачи расчета средней температуры с учетом возможного отсутствия данных с некоторых датчиков, можно использовать следующий подход:
Код:
// Создаем массив с данными датчиков
// null означает, что датчик не работает
const sensors = [22.5, null, 24.3, 23.1];
// Функция для расчета средней температуры
function calculateAverageTemperature(sensors) {
// Фильтруем массив, оставляя только валидные значения
const validTemperatures = sensors.filter(temp => temp !== null && temp !== undefined);
// Проверяем, есть ли хотя бы один работающий датчик
if (validTemperatures.length === 0) {
throw new Error('Нет работающих датчиков');
}
// Считаем сумму всех валидных температур
const sum = validTemperatures.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
// Вычисляем среднее значение
const average = sum / validTemperatures.length;
return average;
}
try {
const averageTemperature = calculateAverageTemperature(sensors);
console.log(`Средняя температура: ${averageTemperature.toFixed(2)}°C`);
} catch (error) {
console.error(error.message);
}
Как это работает:
Массив датчиков содержит значения температур, где null означает нерабочий датчик.
Метод filter удаляет все null и undefined значения, оставляя только валидные температуры.
Метод reduce суммирует все валидные значения.
Деление происходит на количество валидных значений, которое автоматически определяется.
Преимущества такого подхода:
Гибкость: количество датчиков может меняться
Надежность: автоматически игнорирует нерабочие датчики
Ошибка обработки: выбрасывает ошибку, если все датчики не работают
Точность: результат округляется до двух знаков после запятой
Вы можете легко модифицировать этот код, добавив дополнительные проверки или изменяя способ обработки ошибок в зависимости от ваших требований.