Javascript 特殊对象过滤
我得到了一个js对象,它有多个子对象,所有子对象都是以相同的方式构建的。它们包含一个“Javascript 特殊对象过滤,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我得到了一个js对象,它有多个子对象,所有子对象都是以相同的方式构建的。它们包含一个“有效的”和一个“唯一的”属性 我想得到一个只包含的newObject。valid==true对象,并且每个唯一的-属性只包含一个对象 let object = { let object = { test1: { test1: { valid: true
有效的
”和一个“唯一的
”属性
我想得到一个只包含的newObject
。valid==true
对象,并且每个唯一的-属性只包含一个对象
let object = { let object = {
test1: { test1: {
valid: true, valid: true,
unique: "123" unique: "123"
}, },
test2: { test5: {
valid: true, --> valid: true,
unique: "123" unique: "321"
}, }
test3: { }
valid: false,
unique: "431"
},
test5: {
valid: true,
unique: "321"
}
}
这是我到目前为止得到的,但我不知道如何继续删除重复项
let对象={
测试1:{
有效:对,
独特:“123”
},
测试2:{
有效:对,
独特:“123”
},
测试3:{
有效:假,
独特:“431”
},
测试5:{
有效:对,
独特:“321”
}
}
Object.filter=(obj,谓词)=>Object.keys(obj).filter(key=>predicate(obj[key])).reduce((res,key)=>(res[key]=obj[key],res),{});
让newObject=Object.filter(对象,函数(项){return item.valid})
console.log(newObject)
您可以创建一个集合
来保存唯一的值,然后在对象上减少
。条目
数组将未看到且有效的值添加到对象中:
let obj={test1:{valid:true,unique:123},test2:{valid:true,unique:123},test3:{valid:false,unique:431},test5:{valid:true,unique:321}
让我看看=新的一套
let filtered=Object.entries(obj).reduce((obj[key,value])=>{
如果(!seen.has(value.unique)&&value.valid){
seen.add(value.unique)
obj[键]=值
}
返回obj
}, {})
console.log(过滤)
您可以创建一个集合
来保存唯一的值,然后在对象上减少
。条目
数组将未看到且有效的值添加到对象中:
let obj={test1:{valid:true,unique:123},test2:{valid:true,unique:123},test3:{valid:false,unique:431},test5:{valid:true,unique:321}
让我看看=新的一套
let filtered=Object.entries(obj).reduce((obj[key,value])=>{
如果(!seen.has(value.unique)&&value.valid){
seen.add(value.unique)
obj[键]=值
}
返回obj
}, {})
console.log(已过滤)