Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 特殊对象过滤_Javascript_Arrays_Sorting_Object - Fatal编程技术网

Javascript 特殊对象过滤

Javascript 特殊对象过滤,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我得到了一个js对象,它有多个子对象,所有子对象都是以相同的方式构建的。它们包含一个“有效的”和一个“唯一的”属性 我想得到一个只包含的newObject。valid==true对象,并且每个唯一的-属性只包含一个对象 let object = { let object = { test1: { test1: { valid: true

我得到了一个js对象,它有多个子对象,所有子对象都是以相同的方式构建的。它们包含一个“
有效的
”和一个“
唯一的
”属性

我想得到一个只包含
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(已过滤)