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

使用jQuery从数组中获取唯一数据的实现方法

解决API数据中建筑名称重复输出的问题

这问题我之前处理类似批量数据时也碰到过,核心就是要过滤掉重复的建筑名称——要么提前处理数据提取唯一值,要么在遍历过程中跳过已经输出过的条目。给你几种简单好用的实现方式:

方法一:先提取唯一名称再输出

利用JavaScript的Set(它会自动帮我们去重)先把所有不重复的建筑名称提取出来,再遍历输出,代码清晰直观:

var data = { "data": [{ "id": 1, "building": "Big Building" }, { "id": 2, "building": "Big Building" }, { "id": 3, "building": "Small Building" }, { "id": 4, "building": "Small Building" }] };

// 提取所有building字段,通过Set去重后转成数组
const uniqueBuildings = [...new Set(data.data.map(item => item.building))];

// 遍历输出唯一的建筑名称
uniqueBuildings.forEach(building => {
    console.log(building);
});

方法二:遍历过程中跳过重复条目

如果不想提前处理整个数据数组,可以在遍历的时候用一个集合记录已经输出过的建筑名称,遇到重复的就直接跳过:

var data = { "data": [{ "id": 1, "building": "Big Building" }, { "id": 2, "building": "Big Building" }, { "id": 3, "building": "Small Building" }, { "id": 4, "building": "Small Building" }] };

// 用Set存储已经输出过的建筑名称
const seenBuildings = new Set();

jQuery.each(data.data, function(index, item) {
    const building = item.building;
    // 如果该建筑名还没输出过,就打印并加入Set
    if (!seenBuildings.has(building)) {
        console.log(building);
        seenBuildings.add(building);
    }
});

兼容旧环境的替代方案(不用Set)

如果需要兼容不支持Set的旧浏览器,可以用普通对象来记录已输出的名称:

var data = { "data": [{ "id": 1, "building": "Big Building" }, { "id": 2, "building": "Big Building" }, { "id": 3, "building": "Small Building" }, { "id": 4, "building": "Small Building" }] };

const seenBuildings = {};

jQuery.each(data.data, function(index, item) {
    const building = item.building;
    if (!seenBuildings[building]) {
        console.log(building);
        seenBuildings[building] = true;
    }
});

这几种方法都能帮你得到期望的输出:

Big Building
Small Building

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:41:29