Javascript 在下拉选择中映射出唯一的结果

Javascript 在下拉选择中映射出唯一的结果,javascript,reactjs,Javascript,Reactjs,我正在动态填充一个JSON对象数组中的select下拉列表,并希望通过标记进行选择。问题是,我将返回重复的结果,因为多个结果可能具有相同的标记。 如何仅显示唯一标记而不显示重复标记 我得到的例子: 本田 丰田 丰田 沃尔沃 沃尔沃 我想要的示例: 本田 丰田 沃尔沃 按标签筛选 {装备地图((装备,索引)=>( {equipm.tag} ))} ; 您可以在return语句之前过滤出唯一的值,然后迭代它们。可以使用将数组转换为唯一值列表,然后将其转换回数组 const标签=[“Honda”,

我正在动态填充一个JSON对象数组中的select下拉列表,并希望通过标记进行选择。问题是,我将返回重复的结果,因为多个结果可能具有相同的标记。 如何仅显示唯一标记而不显示重复标记

我得到的例子:
本田
丰田
丰田
沃尔沃
沃尔沃

我想要的示例:
本田
丰田
沃尔沃


按标签筛选
{装备地图((装备,索引)=>(
{equipm.tag}
))}
;

您可以在return语句之前过滤出唯一的值,然后迭代它们。可以使用将数组转换为唯一值列表,然后将其转换回数组

const标签=[“Honda”,
“丰田”,
“丰田”,
“沃尔沃”,
“沃尔沃”
]
const unique=[…新集合(标记)]

console.log(unique)
您可以创建一个新的unique数组,然后在其上使用映射功能,并将其显示在所选字段中

render(){
    const brands = ['Honda',
      'Toyota',
      'Toyota',
      'Volvo',
      'Volvo'];
      const uniqueBrands = Array.from(new Set(brands))
  

  return (
    
  <>
  <select>
  {uniqueBrands.map(unique=>
  <option value="DEFAULT">
           {unique}
  </option>
  )}
</select>    
  </>
  );
render(){
康斯特品牌=[‘本田’,
"丰田",,
"丰田",,
“沃尔沃”,
“沃尔沃”];
const uniqueBrands=Array.from(新集合(品牌))
返回(
{uniqueBrands.map(唯一=>
{unique}
)}
);

}有多种方法,我们可以解决上述问题。

  • 使用集
  • let brands=['Honda',
    "丰田",,
    "丰田",,
    “沃尔沃”,
    “沃尔沃”];
    
    console.log([…新设置(品牌)])
    一种方法是使用Set

    let brands = ['Honda',
    'Toyota',
    'Toyota',
    'Volvo',
    'Volvo'];
    
    const uniqueTags = [...new Set(tags)]
    
    另一种方法是使用过滤器:-

    const uniqueTags  = tags.filter((c, index) => {
        return tags.indexOf(c) === index;
    });
    

    谢谢这让我走上了正确的道路(没有双关语)。我忘了提到它是一个JSON对象数组,显然不能使用“Set”,因为对象是相同的。因此,我找到了这个答案:`let unique=[…新映射(设备.Map((设备)=>[
    ${device.tag}
    ,设备]).values(设备.tag)]`
    const uniqueTags  = tags.filter((c, index) => {
        return tags.indexOf(c) === index;
    });