javascript - 如何从对象数组中获取唯一值
问题描述
我有一个映射的数组对象,现在我需要从该数组的子对象中获取唯一值。
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>
我需要得到这样的值: some1 some3
所以我只需要从属性字符串中获取一个名称。对于数字,只有一个名字。
解决方案
你可以创建一个Set
for property
。如果property
尚未添加 a ,请将name
for 属性添加到数组中。
const arr = [{
name: 'name1',
functions: {
0: {
name: 'some1',
property: 'string'
},
1: {
name: 'some2',
property: 'string'
},
2: {
name: 'some3',
property: 'number'
}
}
}]
const propertySet = new Set,
names = []
for (const { functions } of arr) {
Object.values(functions).forEach(o => {
if (!propertySet.has(o.property)) {
names.push(o.name);
propertySet.add(o.property)
}
})
}
console.log(names)
推荐阅读
- python - pandas 0.22,仅重新采样完整箱,删除部分
- go - 在 Mac 中安装 Beego 失败
- android - Google 日历中的活动
- verilog - 使用掩码的系统 Verilog
- linux - 在 Linux 用户空间程序中启用 pr_debug?
- vba - 删除vba中的行不起作用
- python - 提高文本分类的准确性(目前 Naive Bayes 和 SVM 的准确性为 62%)
- java - 错误午餐 Android 工作室
- swift - 为什么 NSSpeechsynthesier 的类方法 availableVoices 不能桥接到 Swift 字符串数组?
- android - Android 库:对用户隐藏我的类和方法