Javascript 使用矩形输入、更新、退出?

Javascript 使用矩形输入、更新、退出?,javascript,d3.js,svg,rectangles,Javascript,D3.js,Svg,Rectangles,基于这个问题: 可以在D3.js中动态地输入、更新和退出元素。在下面的代码中,可以使用文本对此进行解释 var svg = d3.select("body").append("svg"); var dataset = [{ name: "foo" }, { name: "bar" }, { name: "baz" }, { name: "lorem" }, { name: "ipsum" }, { name: "dolot" }, { n

基于这个问题:

可以在D3.js中动态地输入、更新和退出元素。在下面的代码中,可以使用文本对此进行解释

var svg = d3.select("body").append("svg");

var dataset = [{
    name: "foo"
}, {
    name: "bar"
}, {
    name: "baz"
}, {
    name: "lorem"
}, {
    name: "ipsum"
}, {
    name: "dolot"
}, {
    name: "amet"
}];

print(dataset);

setInterval(()=> {
    var data = dataset.slice(Math.random() * 6);
    print(data);
}, 1000);

function print(data) {

    var texts = svg.selectAll(".texts")
        .data(data);

    textsExit = texts.exit().remove();

    textsEnter = texts.enter()
        .append("text")
        .attr("class", "texts");

    textsUpdate = texts.merge(textsEnter).attr("x", 10)
        .attr("y", (d, i) => 20 + i * 16)
        .text((d,i) => "Node " + (i+1) + ", name: " + d.name);

}
现在,我用圆圈做了同样的尝试,效果很好。然后我试着用矩形来做这个,但它不起作用。以下是矩形示例的代码:

 var rect= svg.selectAll(".rect") 
             .data(path1);

            rectExit = rect.exit().remove();

            rectEnter = rect.enter()
            .append("rect")
            .attr("class", "rect");

            rectUpdate = rect.merge(rectEnter)
            .attr("x", function(d, i) { return (10 + i * 2)})
            .attr("y", 12)
            .attr("width", 10)
            .attr("height", 40)
            .attr('stroke', "blue") 
也许有人能帮我吗?
谢谢

你好,德里克,我不明白这个问题:你的代码正常工作:我的错。谢谢你的提示。