d3: выберите подмножество данных по ключу для элементов привязки - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть вложенный (2D) массив JSON.При связывании второго измерения массива я хотел бы связать только элементы, которые имеют ключ "id", т.е. я хотел бы игнорировать элемент с ключом "column".

С моим текущим примером кодаЯ рожаю столько детей, сколько у меня есть элементов.Однако мне понадобится меньше.

		jsonNodes = [{"id": 0, 
	      "table": [{"id": 10}, {"id": 11}, {"id": 12}, 
		        {"column": [{"id": "a"}]}]},
             {"id": 1,
	      "table": [{"id": 20}, {"id": 21},
		        {"column": [{"id": "y"}, {"id": "z"}]}]}
            ];

		// bind svg element
		var svgContainer = d3.select("body").append("svg")
				.attr("width", 50)
				.attr("height", 50)

		// build steps
		var stepG = svgContainer.selectAll("svg")
				.data(jsonNodes)
			  
		var stepGenter = stepG.enter()
				.append("g")
				.attr("id", function(d) { return "id" + d.id; });

		// append to individual class
		var tableG = stepGenter.selectAll("g")
				.data(function(d, i) { console.log(d.table[i]);
									   return d.table; })
				
		var tableGenter = tableG.enter()
				.append("g")
				.attr("id", function(d) { return "id" + d.id; });
<script src="https://d3js.org/d3.v5.js"></script>
...