使用Set将对象的值数组减少为没有重复的数组

我有以下对象数组:

[{
    "user": {
      "tags": [{
        "tag": "T1"
      },{
        "tag": "T2"
      }]
    }
  },{
    "user": {
      "tags": [{
        "tag": "T2"
      }]
    }
  },{
    "user": {
      "tags": [{
        "tag": "T3"
      }]
    }
  }]

并且需要使用 ES6 Set

收集所有没有重复的标签,如下所示

[“ T1”,“ T2”,“ T3”]

有人可以帮助我吗?

wangjihong0407 回答:使用Set将对象的值数组减少为没有重复的数组

我同意这些意见。这是一个嵌套循环实现,

const data = [{
    "user": {
      "tags": [{
        "tag": "T1"
      },{
        "tag": "T2"
      }]
    }
  },{
    "user": {
      "tags": [{
        "tag": "T2"
      }]
    }
  },{
    "user": {
      "tags": [{
        "tag": "T3"
      }]
    }
  }];

const tagsSet = new Set([]);

data.forEach(val => {
  val.user.tags.forEach(t => {
    if(!tagsSet.has(t.tag)){
      tagsSet.add(t.tag);
    }
  });
});

console.log(tagsSet); // Set(3) {"T1","T2","T3"}
,

使用减少设置获得答案。谢谢T.J. Crowder!

addMachines('01','8',buildDisk(20,50),'nice')

本文链接:https://www.f2er.com/3149646.html

大家都在问