Javascript 对象数组中数组的不同值

Javascript 对象数组中数组的不同值,javascript,Javascript,我有一系列的东西。每个对象内部都有另一个数组。 我想从这些数组中提取不同的值 风险值数据=[ {分类:'Stuff',类型:'One',设计:['A','B']}, {分类:'Stuff',类型:'Two',设计:['C']}, {分类:'Stuff',类型:'One',设计:['D']}, {分类:'Other',类型:'Three',设计:['C','D']} ]; log[…new Setdata.mapx=>x.categorie]; log[…new Setdata.mapx=>x.

我有一系列的东西。每个对象内部都有另一个数组。 我想从这些数组中提取不同的值

风险值数据=[ {分类:'Stuff',类型:'One',设计:['A','B']}, {分类:'Stuff',类型:'Two',设计:['C']}, {分类:'Stuff',类型:'One',设计:['D']}, {分类:'Other',类型:'Three',设计:['C','D']} ]; log[…new Setdata.mapx=>x.categorie]; log[…new Setdata.mapx=>x.type]; //设计的预期输出['A'、'B'、'C'、'D']您可以使用平面地图而不是地图

风险值数据=[ {分类:'Stuff',类型:'One',设计:['A','B']}, {分类:'Stuff',类型:'Two',设计:['C']}, {分类:'Stuff',类型:'One',设计:['D']}, {分类:'Other',类型:'Three',设计:['C','D']} ]; log[…new Setdata.flatmappx=>x.designs]; //设计的预期输出['A'、'B'、'C'、'D']您可以使用平面地图而不是地图

风险值数据=[ {分类:'Stuff',类型:'One',设计:['A','B']}, {分类:'Stuff',类型:'Two',设计:['C']}, {分类:'Stuff',类型:'One',设计:['D']}, {分类:'Other',类型:'Three',设计:['C','D']} ]; log[…new Setdata.flatmappx=>x.designs];
//设计的预期输出['A'、'B'、'C'、'D']您还需要从设计中获取一组

var data=[{categorie:'Stuff',type:'One',designs:['A','B']},{categorie:'Stuff',type:'Two',designs:['C']},{categorie:'Stuff',type:'One',designs:['D']},{categorie:'Other',type:'Three designs:['C','D']}, unique=data.reduces,{designs}=>[…新集合[…s,…设计]],[];
console.logunique 你也需要从设计中拿一套

var data=[{categorie:'Stuff',type:'One',designs:['A','B']},{categorie:'Stuff',type:'Two',designs:['C']},{categorie:'Stuff',type:'One',designs:['D']},{categorie:'Other',type:'Three designs:['C','D']}, unique=data.reduces,{designs}=>[…新集合[…s,…设计]],[];
console.logunique 一个简单的解决方案是:

风险值数据=[ {分类:'Stuff',类型:'One',设计:['A','B']}, {分类:'Stuff',类型:'Two',设计:['C']}, {分类:'Stuff',类型:'One',设计:['D']}, {分类:'Other',类型:'Three',设计:['C','D']} ]; var uniquelets=[] data.forEachobj=>{ obj.designs.forEachletter=>{ 如果uniqueLetters.indexOfletter<0{ 唯一字母 } } }
console.loguniquelets一个简单的解决方案是:

风险值数据=[ {分类:'Stuff',类型:'One',设计:['A','B']}, {分类:'Stuff',类型:'Two',设计:['C']}, {分类:'Stuff',类型:'One',设计:['D']}, {分类:'Other',类型:'Three',设计:['C','D']} ]; var uniquelets=[] data.forEachobj=>{ obj.designs.forEachletter=>{ 如果uniqueLetters.indexOfletter<0{ 唯一字母 } } }
console.loguniquelets试试这个。。纯JavaScript解决方案

var output = [];
for(var i=0; i<data.length; i++){
for(var j=0; j<data[i].designs.length; j++ ){
  if(output.indexOf(data[i].designs[j]) === -1) {
  output.push(data[i].designs[j])
  }
}
}
console.log(output)
//expected output for designs ['A','B','C','D']

试试这个。。纯JavaScript解决方案

var output = [];
for(var i=0; i<data.length; i++){
for(var j=0; j<data[i].designs.length; j++ ){
  if(output.indexOf(data[i].designs[j]) === -1) {
  output.push(data[i].designs[j])
  }
}
}
console.log(output)
//expected output for designs ['A','B','C','D']

比如console.log[…new Setdata.flatMapx=>x.designs];?设计的预期输出-为什么要返回x.categorie/x.type?其他两个console.log只是一个示例,我将如何从categorie和type返回distincts。但是不知道如何从designs.like console.log[…new Setdata.flatmappx=>x.designs];?设计的预期输出-为什么要返回x.categorie/x.type?其他两个console.log只是一个示例,我将如何从categorie和type返回distincts。但是不知道如何从设计中实现。让res=[…new Setdata.reducea,{designs}=>[…a,…designs],]怎么样。首先展平并在最后形成一个集合,而不是在每个缩减步骤上形成一个集合,这不是更好吗?让res=[…new Setdata.reducea,{designs}=>[…a,…designs],]怎么样。如果先将其展平,然后在最后形成一个集合,而不是在每一个还原步骤上形成一个集合,不是更好吗?