Javascript 如何从对象数组中获取唯一值
我已经映射了一个数组对象,现在我需要从该数组的子对象中获取唯一的值Javascript 如何从对象数组中获取唯一值,javascript,Javascript,我已经映射了一个数组对象,现在我需要从该数组的子对象中获取唯一的值 const arr=[ { name: 'name1', functions:{ 0:{ name:'some1', property: 'string' }, 1:{
const arr=[
{
name: 'name1',
functions:{
0:{
name:'some1',
property: 'string'
},
1:{
name:'some1',
property: 'string'
},
2:{
name:'some3',
property: 'number'
}
}
},
]
<div>
{
arr.map((item, index) => {
let ars=[]
//console.log(item.functions)
for(const key in item.functions){
if(ars.indexOf(item.functions[key])>1){
ars.push(item.functions[key])
}
}
console.log(ars)
return <div key={index}>
<h2>{item.name}</h2>
{
ars.map((i)=>(
<p>{i.name}</p>
))
}
</div>
})
}
</div>
我需要得到这样的值:
某物
大约3
所以我只需要从属性字符串中获取一个名称。对于数字,只有一个名称。您可以创建一个for属性。如果尚未添加属性,请将该属性的名称添加到数组中
常数arr=[{
名称:'name1',
职能:{
0: {
名称:“some1”,
属性:“字符串”
},
1: {
名字:“some2”,
属性:“字符串”
},
2: {
名字:“some3”,
属性:“编号”
}
}
}]
const propertySet=新集合,
名称=[]
对于arr的常数{函数}{
Object.valuesfunctions.forEacho=>{
if!propertySet.haso.property{
name.pusho.name;
propertySet.addo.property
}
}
}
console.lognames如果基于属性值的字符串表示的唯一性足够了,并且name的值始终为truthy,则可以使用以下代码: const arr=[{name:'name1',函数:{0:{name:'some1',属性:'string'},1:{name:'some2',属性:'string'},2:{name:'some3',属性:'number'}]; 让lookup={}; arr.forEachobj=>{ Object.valuesobj.functions.forEachfunc=>{ 查找[func.property]| |查找[func.property]=func.name; }; };
console.logObject.valueslookup;我不明白预期的输出是什么。你能在你的问题中添加你想要代码返回的内容吗?可能重复的我需要这样的输出:some1,some3@Saban这将为您提供一个唯一名称数组。您可以通过它进行映射,并根据需要创建divdoing@Saban为什么预期的输出中不包括some2?我需要按属性名称筛选数组,因此我希望得到some1而不是some2,因为属性名称字符串相同。答案不正确,他需要根据唯一属性打印名称。因为some2和some3具有相同的属性值,所以输出中应该只有一个属性值