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

React项目中如何去除react-select下拉框的重复品牌选项?

解决react-select汽车品牌下拉框重复选项问题

要去除重复的品牌选项,核心是先从车辆列表中提取唯一的品牌值,再生成react-select需要的options数组,以下是两种简单可行的实现方式:

方法一:利用ES6 Set自动去重

Set会自动过滤重复值,先提取所有品牌存入Set,再转为数组后生成选项:

const FilterSideBar = ({carsList}) => {
  // 提取唯一品牌
  const uniqueMakes = [...new Set(carsList.map(car => car.make))];
  // 生成options数组
  const options = uniqueMakes.map(make => ({
    value: make,
    label: make
  }));

  return (
    <>
      <Select options={options} styles={colourStyles} isSearchable={false}/>
    </>
  )
}

方法二:使用reduce手动去重

如果需要兼容不支持Set的环境,或者需要更灵活的控制,可以用reduce来遍历并记录已出现的品牌:

const FilterSideBar = ({carsList}) => {
  // 用reduce生成唯一品牌的对象,key为品牌名
  const uniqueMakesObj = carsList.reduce((acc, car) => {
    if (!acc[car.make]) {
      acc[car.make] = true;
    }
    return acc;
  }, {});
  // 提取对象的key作为唯一品牌数组
  const uniqueMakes = Object.keys(uniqueMakesObj);
  // 生成options数组
  const options = uniqueMakes.map(make => ({
    value: make,
    label: make
  }));

  return (
    <>
      <Select options={options} styles={colourStyles} isSearchable={false}/>
    </>
  )
}

两种方法都能有效去除重复的品牌选项,其中Set的方式代码更简洁,推荐在现代浏览器环境下使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:27:15