代码之家  ›  专栏  ›  技术社区  ›  stampede76

嵌套对象数组上的d3组

  •  0
  • stampede76  · 技术社区  · 6 年前

    我正在处理这样的数据:

    [{key:"1", tags:[{name:"user1"}, {name:"bot2"}]},
     {key:"2", tags:[{name:"user3"}, {name:"bot4"}]},
     {key:"3", tags:[{name:"user5"}, {name:"user1"}]}]
    

    我有一个javascript代码,它将按标记名分组,列出所有唯一的值并删除重复项,并给出如下信息:

    ["user1","bot2","user3","bot4","user5"]

    我想用D3库替换它。

    我在找文件,但不同版本的参考资料把我搞混了。

    0 回复  |  直到 6 年前
        1
  •  0
  •   ee2Dev    6 年前

    数据争用不需要d3.js。可以使用普通的JavaScript。 有一种方法:

        const intialData = [{key:"1", tags:[{name:"user1"}, {name:"bot2"}]},
         {key:"2", tags:[{name:"user3"}, {name:"bot4"}]},
         {key:"3", tags:[{name:"user5"}, {name:"bot1"}]}];
        
        const d1 = intialData.map((ele) => ele.tags);
        log("d1", d1);
        
        let d2 = [];
        d1.forEach((ele) => {
          ele.forEach((ele) => { d2.push(ele.name);});
        });
        log("d2", d2);
        
        const d3 = new Set(d2);
        log("d3", d3);;
        
        const d4 = Array.from(d3);
        log("d4", d4);
        function log(str, obj) { console.log(str+ ":"); console.log(obj);}