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

如何提取JSON中不重复的location.name至数组?

解决方法

你可以利用JavaScript的Set对象自动处理重复值,再将其转换为数组,就能得到不重复的location.name集合。以下是修改后的代码,整合了提取逻辑:

const API_URL = 'https://apidemo.outrainer.pl/firms/1/trainings?future=14&past=7';
let trainings = [];

fetch(API_URL)
    .then((res) => res.json())
    .then((trainingsData) => {
        trainings = trainingsData.map((training) => {
            return {
                name: training.name,
                startDate: training.startDate,
                endDate: training.endDate,
                location: training.location.name,
                type: training.location.type
            };
        });

        // 提取不重复的location.name数组
        const uniqueLocations = [...new Set(trainings.map(item => item.location))];
        console.log(uniqueLocations); // 输出符合要求的无重复地点数组

        renderTrainingsList(trainings);
});

const renderTrainingsList = (trainings) => {
    trainings.forEach(training => {
        createTrainingsItemElement(training)
    })
}

核心逻辑说明:

  • 第一步:用trainings.map(item => item.location)从处理后的数组中提取所有地点名称,得到包含重复项的数组。
  • 第二步:将该数组传入new Set(),Set会自动过滤掉重复元素,仅保留唯一值。
  • 第三步:通过扩展运算符[...Set]把Set对象转换回普通数组,得到目标格式的无重复地点数组。

如果想直接从原始接口数据中提取(跳过中间的trainings数组处理),可以把提取逻辑替换成:

const uniqueLocations = [...new Set(trainingsData.map(training => training.location.name))];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:50:32