You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript函数编写优化:如何用年份参数统一展示选举地图

优化方案:统一选举地图展示函数

改成用对象映射统一管理不同年份的图片信息,再写一个接收年份参数的通用函数,就能解决重复代码问题,后续维护也更方便。

1. 用对象存储年份与图片的对应关系

把原来分散的图片变量整合到一个对象里,键为年份,值为包含图片路径、宽高的配置:

// 年份-图片信息映射表,新增年份直接加键值对即可
const electionImages = {
  2020: { src: '270towin.png', width: 600, height: 300 },
  2016: { src: '201019164452-2016-election-map.jpg', width: 600, height: 300 }
};

2. 编写通用展示函数

写一个接收year参数的函数,从映射表中取对应图片信息,生成HTML插入目标元素:

function showElectionMap(year) {
  const demoEl = document.getElementById('demo');
  // 检查当前年份是否有对应的图片配置
  const imageInfo = electionImages[year];
  
  if (!imageInfo) {
    demoEl.innerHTML = '<p>暂无该年份的选举地图</p>';
    return;
  }
  
  // 用模板字符串生成符合规范的img标签
  const imgHtml = `<img src="${imageInfo.src}" width="${imageInfo.width}" height="${imageInfo.height}">`;
  demoEl.innerHTML = imgHtml;
}

3. 调用方式

现在展示对应年份的地图,直接传年份调用函数即可:

// 展示2020年选举地图
showElectionMap(2020);
// 展示2016年选举地图
showElectionMap(2016);

优化优势

  • 扩展性强:后续新增2012、2008等年份的地图,只需在electionImages里加一条配置,不用写新函数。
  • 减少重复代码:合并重复的展示逻辑,只维护一份代码,降低出错概率。
  • 结构更清晰:数据(图片配置)与逻辑(展示逻辑)分离,代码可读性更高。

内容的提问来源于stack exchange,提问作者Joseph Foley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:40:28