【生活】选购油烟机
前言:
主包家里的厨房在六楼,油烟可以直接从墙上预留通风口排出,所以以下内容是按主包的实际需求出发的
性价比公式
- 风量(\(m^3 / min\)):也就是吸力,经常爆炒的至少 20 \(m^3 / min\) 最好
- 静压(\(Pa\)):也就是排烟能力,能直接排出到室外的,400 ~ 500 \(Pa\) 即可
- 油脂分离度(%):也就是能从烟气中分离出油脂的能力,国家标准至少 80%
- 噪音(\(dB\)):国家标准不超过65 \(dB\)
下列参数适用于主包需求,仅供参考:
风量目标值:20 \(m^3 / min\)
静压目标值:450 \(Pa\)
油脂分离度目标值:80%
噪音理想值:45 \(dB\)
噪音上限值:65 \(dB\)
各指标权重:风量0.4,静压0.2,油脂分离度0.2,噪音0.2
风量、静压、油脂分离度 \(指标 = 实际值 \div 目标值\)
噪音 \(指标 = max(0, 1 - (实际值 - 理想值) \div (上限值 - 理想值))\)
\(性价比 = (风量指标 \times A + 静压指标 \times B + 油脂分离度指标 \times C + 噪音指标 \times D) \div 价格\)
A、B、C、D为各指标权重,性价比越大越好
可用于现场计算的HTML代码,参数按需修改:
点击查看代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>油烟机性价比计算器</title>
<style>
body {
font-family: 'Microsoft YaHei', sans-serif;
margin: 20px;
background-color: #f5f5f5;
}
.container {
max-width: 1200px;
margin: 0 auto;
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
h1 {
text-align: center;
color: #333;
margin-bottom: 20px;
}
.instructions {
background-color: #f0f8ff;
padding: 15px;
border-radius: 5px;
margin-bottom: 20px;
font-size: 14px;
line-height: 1.5;
}
table {
width: 100%;
border-collapse: collapse;
margin-bottom: 20px;
}
th, td {
border: 1px solid #ddd;
padding: 10px;
text-align: center;
}
th {
background-color: #4CAF50;
color: white;
font-weight: bold;
}
input {
width: 90%;
padding: 5px;
border: 1px solid #ccc;
border-radius: 3px;
text-align: center;
}
.best-value {
background-color: #e8f5e9 !important;
}
.footer {
text-align: center;
margin-top: 20px;
font-size: 12px;
color: #666;
}
</style>
</head>
<body>
<div class="container">
<h1>油烟机性价比计算器</h1>
<div class="instructions">
<p><strong>使用说明:</strong></p>
<p>1. 在表格中输入各油烟机型号的参数和价格</p>
<p>2. 系统会自动计算每行的性价比得分(已放大10000倍)</p>
<p>3. 当输入超过2行数据时,性价比最高的行将自动高亮显示为浅绿色</p>
<p><strong>计算公式:</strong></p>
<p>风量指标 = 实际风量 / 20</p>
<p>静压指标 = 实际静压 / 450</p>
<p>油脂分离度指标 = 实际油脂分离度 / 80</p>
<p>噪音指标 = max(0, 1 - (实际噪音 - 45) / 20)</p>
<p>总指标 = 风量指标×0.4 + 静压指标×0.2 + 油脂分离度指标×0.2 + 噪音指标×0.2</p>
<p>性价比 = 总指标 / 价格 × 10000</p>
</div>
<table id="comparisonTable">
<thead>
<tr>
<th>机型名</th>
<th>风量 (m³/min)</th>
<th>静压 (Pa)</th>
<th>油脂分离度 (%)</th>
<th>噪音 (dB)</th>
<th>价格 (元)</th>
<th>性价比(万分之一)</th>
</tr>
</thead>
<tbody>
<!-- 15行数据输入行 -->
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
<tr>
<td><input type="text" class="model-name"></td>
<td><input type="number" class="airflow" min="0" step="0.1"></td>
<td><input type="number" class="pressure" min="0"></td>
<td><input type="number" class="separation" min="0" max="100" step="0.1"></td>
<td><input type="number" class="noise" min="0" step="0.1"></td>
<td><input type="number" class="price" min="0" step="1"></td>
<td class="value-score">-</td>
</tr>
</tbody>
</table>
<div class="footer">
<p>注:性价比得分越高,表示该机型在同等价格下性能越好(得分已放大10000倍)</p>
</div>
</div>
<script>
// 添加输入事件监听器
document.addEventListener('DOMContentLoaded', function() {
const tableBody = document.querySelector('#comparisonTable tbody');
tableBody.addEventListener('input', function(e) {
if (e.target.matches('input')) {
const row = e.target.closest('tr');
calculateValueScore(row);
highlightBestValue();
}
});
});
// 计算性价比
function calculateValueScore(row) {
const airflowInput = row.querySelector('.airflow');
const pressureInput = row.querySelector('.pressure');
const separationInput = row.querySelector('.separation');
const noiseInput = row.querySelector('.noise');
const priceInput = row.querySelector('.price');
const valueScoreCell = row.querySelector('.value-score');
// 检查所有必需字段是否已填写
if (airflowInput.value && pressureInput.value &&
separationInput.value && noiseInput.value && priceInput.value) {
// 解析输入值
const airflow = parseFloat(airflowInput.value);
const pressure = parseFloat(pressureInput.value);
const separation = parseFloat(separationInput.value);
const noise = parseFloat(noiseInput.value);
const price = parseFloat(priceInput.value);
// 计算各项指标
const airflowScore = airflow / 20; // 目标风量20
const pressureScore = pressure / 450; // 目标静压450
const separationScore = separation / 80; // 目标油脂分离度80
const noiseScore = Math.max(0, 1 - (noise - 45) / 20); // 理想噪音45,20就是上限值 - 理想值得到的常数
// 计算总指标(加权平均)
const totalScore =
airflowScore * 0.4 +
pressureScore * 0.2 +
separationScore * 0.2 +
noiseScore * 0.2;
// 计算性价比并乘以10000
const valueScore = (totalScore / price) * 10000;
// 显示结果(保留2位小数)
valueScoreCell.textContent = valueScore.toFixed(2);
} else {
valueScoreCell.textContent = '-';
}
}
// 高亮性价比最高的行
function highlightBestValue() {
const rows = document.querySelectorAll('#comparisonTable tbody tr');
let bestRow = null;
let bestScore = -1;
let validRows = 0;
// 查找最高性价比的行
rows.forEach(row => {
const valueScoreCell = row.querySelector('.value-score');
const scoreText = valueScoreCell.textContent;
if (scoreText !== '-') {
validRows++;
const score = parseFloat(scoreText);
if (score > bestScore) {
bestScore = score;
bestRow = row;
}
}
});
// 清除所有高亮
rows.forEach(row => row.classList.remove('best-value'));
// 如果有超过2行有效数据,高亮最佳行
if (validRows > 2 && bestRow) {
bestRow.classList.add('best-value');
}
}
</script>
</body>
</html>

浙公网安备 33010602011771号