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

如何按积分过滤API响应数据并分Div展示?求实现代码

没问题,我来帮你搞定这个需求!下面是具体的实现方案,分HTML结构和JavaScript逻辑两部分,你可以直接套用:

实现方案

1. 先准备HTML结构

首先要在页面上定义好两个目标容器,分别用来存放积分大于100和小于100的数据:

<!-- 存放积分>100的数据 -->
<div id="largePointsContainer" class="large"></div>
<!-- 存放积分<100的数据 -->
<div id="smallPointsContainer" class="small"></div>

2. JavaScript逻辑处理

接下来是核心的数据处理和渲染逻辑,我会分步骤说明:

步骤1:处理API返回数据(排序+过滤)

不管你是同步拿到数据还是通过异步请求(比如fetch/axios)获取API响应,都可以按以下流程处理:

// 假设这是你的API返回数据(如果是异步请求,把这段逻辑放到请求成功的回调里)
const apiResponse = [
  { id: 1, name: "用户A", points: 150 },
  { id: 2, name: "用户B", points: 80 },
  { id: 3, name: "用户C", points: 200 },
  { id: 4, name: "用户D", points: 90 }
];

// 第一步:按积分排序(这里用降序,要升序的话改成 a.points - b.points)
const sortedData = apiResponse.sort((a, b) => b.points - a.points);

// 第二步:过滤分成两组
// 积分>100的组
const largePointsData = sortedData.filter(item => item.points > 100);
// 积分<100的组
const smallPointsData = sortedData.filter(item => item.points < 100);

步骤2:封装渲染函数(复用性更高)

写一个通用的渲染函数,把数据插入到对应的容器里:

function renderItems(containerId, items) {
  const container = document.getElementById(containerId);
  // 先清空容器(避免重复渲染)
  container.innerHTML = '';
  
  items.forEach(item => {
    // 创建单个数据项的DOM元素
    const itemElement = document.createElement('div');
    itemElement.className = 'data-item'; // 可以自定义样式类
    // 这里可以根据你的需求调整显示内容
    itemElement.textContent = `${item.name} - 积分:${item.points}`;
    container.appendChild(itemElement);
  });
}

步骤3:执行渲染

最后调用函数把数据渲染到对应的容器里:

renderItems('largePointsContainer', largePointsData);
renderItems('smallPointsContainer', smallPointsData);

异步请求的适配示例

如果你的API数据是通过异步请求获取的,比如用fetch,可以这样写:

fetch('你的API接口地址')
  .then(response => response.json())
  .then(apiResponse => {
    // 这里复用上面的排序、过滤、渲染逻辑
    const sortedData = apiResponse.sort((a, b) => b.points - a.points);
    const largePointsData = sortedData.filter(item => item.points > 100);
    const smallPointsData = sortedData.filter(item => item.points < 100);
    
    renderItems('largePointsContainer', largePointsData);
    renderItems('smallPointsContainer', smallPointsData);
  })
  .catch(error => console.error('获取API数据失败:', error));

注意: 如果遇到积分等于100的情况,你可以根据需求调整filter的条件,比如改成item.points >= 100,或者单独新增一个容器来存放这部分数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:07:19