【发布时间】:2019-08-08 21:59:00
【问题描述】:
我正在尝试根据标题制作一排高度和宽度相等的条。有一个由 100 个对象组成的数组,每个对象都包含一个名为 results 的 key 和其他 20 个对象的数组,因此最终结果必须是一排 2000 条,但我只得到 20 条:
Codepen:https://codepen.io/ekilja01/pen/RdJqGO
Data 是一个对象数组,其中包含一个名为 results 的对象数组,格式如下:
0:
page: 1
results: Array(20)
0: {vote_count: 17968, id: 19995, video: false, vote_average: 7.4, title: "Avatar", …}
...
length: 20
1: {page: 2, total_results: 406130, total_pages: 20307, results: Array(20)}
2: {page: 3, total_results: 406130, total_pages: 20307, results: Array(20)}
这是我的方法:
d3.json('data.json').then(data => {
console.log(data);
for (let i = 0; i < data.length; i++) {
//x and y domain
xScale.domain(data[i].results.map(d => d.title));
yScale.domain(data[i].results.map(d => d.original_title));
svg.selectAll('rect')
.data(data[i].results)
.enter()
.append('rect')
.style('fill', 'red')
.attr('width', xScale.bandwidth())
.attr('height', 70)
.attr('x', function (d) {
return xScale(d.title);
})
.attr('y', function (d) {
return yScale.bandwidth() + 175;
});
}
}).catch(error => console.log(error));
【问题讨论】:
标签: javascript arrays json object d3.js