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

如何使用JavaScript过滤城州不同的对象并筛选温度低于40的城市列表

需求说明
  • 先过滤出城市(city)与州(state)名称不相同的对象
  • 再从上述过滤结果中,提取温度(temp)低于40的城市名称列表
给定对象数组
let arr = [
  {
    city:"chennai",
    state: "tamilnadu",
    temp: 44
  },
  {
    city:"coimbator",
    state: "tamilnadu",
    temp: 39
  },
  {
    city:"mumbai",
    state: "maharashtra",
    temp: 32
  },
  {
    city:"delhi",
    state: "delhi",
    temp: 24
  },
  {
    city:"kolkata",
    state: "west bengal",
    temp: 28
  }
];
现有JavaScript代码
const uniqueStateCity = [];

const unique = arr.filter(element => {
  const isDuplicate = uniqueStateCity.includes(element.city);
  
  if (!isDuplicate) {
    if(element.temp < 40)
    {
      uniqueStateCity.push(element.city );
      return true;
    }
  }
  return false;
});

console.log(unique );
现有代码问题

现有代码完全没处理「城市与州名称不同」的核心需求,反而在做城市名去重+温度筛选,会把delhi这种城市和州同名的对象也包含进去,不符合要求。

正确实现代码

用链式调用实现更简洁:

const targetCities = arr
  // 第一步:过滤掉城市与州名称相同的对象
  .filter(item => item.city !== item.state)
  // 第二步:筛选温度低于40的对象
  .filter(item => item.temp < 40)
  // 第三步:提取城市名称列表
  .map(item => item.city);

console.log(targetCities); // 输出:["coimbator", "mumbai", "kolkata"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:00:55