js常用的数组遍历方式

发布于:2025-05-09 ⋅ 阅读:(17) ⋅ 点赞:(0)

以下是一个完整的示例,将包含图片、文字和数字的数组渲染到 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 控制流程。

渲染效果(图片未加载)


网站公告

今日签到

点亮在社区的每一天
去签到