当前位置: 首页 > news >正文

js常用的数组遍历方式

以下是一个完整的示例,将包含图片、文字和数字的数组渲染到 HTML 页面,使用 ​多种遍历方式​ 实现不同的渲染效果:


1. 准备数据(数组)

const items = [{ id: 1, name: "苹果", price: 5.99, image: "https://via.placeholder.com/100?text=Apple" },{ id: 2, name: "香蕉", price: 3.49, image: "https://via.placeholder.com/100?text=Banana" },{ id: 3, name: "橙子", price: 4.99, image: "https://via.placeholder.com/100?text=Orange" }
];

2. HTML 结构

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>数组渲染示例</title><style>.item { border: 1px solid #ddd; padding: 10px; margin: 10px; display: inline-block; text-align: center;}.item img { width: 100px; height: 100px; }</style>
</head>
<body><h2>1. forEach 渲染</h2><div id="forEach-container"></div><h2>2. map + join 渲染</h2><div id="map-container"></div><h2>3. for...of 渲染</h2><div id="forOf-container"></div><script src="script.js"></script>
</body>
</html>

3. JavaScript 渲染逻辑(script.js

// 数据
const items = [{ id: 1, name: "苹果", price: 5.99, image: "https://via.placeholder.com/100?text=Apple" },{ id: 2, name: "香蕉", price: 3.49, image: "https://via.placeholder.com/100?text=Banana" },{ id: 3, name: "橙子", price: 4.99, image: "https://via.placeholder.com/100?text=Orange" }
];// 1. forEach 方式
const forEachContainer = document.getElementById('forEach-container');
items.forEach(item => {const div = document.createElement('div');div.className = 'item';div.innerHTML = `<img src="${item.image}" alt="${item.name}"><h3>${item.name}</h3><p>价格: ¥${item.price.toFixed(2)}</p>`;forEachContainer.appendChild(div);
});// 2. map + join 方式
const mapContainer = document.getElementById('map-container');
const htmlString = items.map(item => `<div class="item"><img src="${item.image}" alt="${item.name}"><h3>${item.name}</h3><p>价格: ¥${item.price.toFixed(2)}</p></div>
`).join('');
mapContainer.innerHTML = htmlString;// 3. for...of 方式
const forOfContainer = document.getElementById('forOf-container');
for (const item of items) {const div = document.createElement('div');div.className = 'item';div.innerHTML = `<img src="${item.image}" alt="${item.name}"><h3>${item.name}</h3><p>价格: ¥${item.price.toFixed(2)}</p>`;forOfContainer.appendChild(div);
}

4. 效果说明

  1. ​**forEach**​

    • 动态创建 DOM 元素并追加到容器中。
    • 适合需要逐个处理元素的场景。
  2. ​**map + join**​

    • 生成 HTML 字符串后一次性插入。
    • 性能更好​(减少 DOM 操作次数)。
  3. ​**for...of**​

    • 语法简洁,类似 forEach,但可以配合 breakcontinue 控制流程。

渲染效果(图片未加载)

http://www.xdnf.cn/news/342739.html

相关文章:

  • HypotMAX7705771077157720HIPOT美国ASSOCIATEDRESEARCH耐压测试仪
  • 1分区 1-113 多线不起总线启
  • 使用pytorch保存和加载预训练的模型方法
  • Spring Boot 中 MongoDB @DBRef注解适用什么场景?
  • 深入理解软件测试覆盖率:从概念到实践
  • SpringBoot的自动配置和起步依赖原理
  • Java 文件监听与热更新机制封装
  • 【LeetCode 42】接雨水(单调栈、DP、双指针)
  • 日拱一卒 | RNA-seq数据质控(1)
  • ERC-20与ERC-721:区块链代币标准的双星解析
  • Spring MVC 中Model, ModelMap, ModelAndView 之间有什么关系和区别?
  • Spring AI Alibaba-04- Spring AI + RAG + ToolCalling 智能对话应用开发全流程
  • # 如何使用 PyQt5 创建一个简单的警报器控制界面
  • Linux基础(最常用基本命令)
  • 用kompose将docker-compose文件转换为K8S资源清单
  • WHAT - ahooks vs swr 请求
  • Qt获取CPU使用率及内存占用大小
  • 基于STM32、HAL库的CP2104 USB转UART收发器 驱动程序设计
  • Node.js 技术原理分析系列9——Node.js addon一文通
  • 【嵌入式面试高频知识点】-wifi相关
  • 钯铂贵金属分离回收树脂
  • 【写作格式】写论文时常见格式问题
  • sherpa-ncnn:Endpointing(断句规则)
  • 05_项目集成飞书预警
  • 浙大与哈佛联合开源图像编辑模型IC-Edit,实现高效、精准、快速的指令编辑~
  • 淘宝九宫格验证码识别
  • 【UltralyticsYolo11图像分类完整项目-02】onnx模型转engine格式+TensorRT版Gpu预测C++实现
  • 动态规划之两个数组的dp问题(最长公共子序列)
  • Unity图集系统(Sprite Atlas)
  • Vue实现不同网站之间的Cookie共享功能