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