Javascript 我可以用字典作为我的';数据';矩形的对象?
我想做四个宽度和高度都固定的矩形Javascript 我可以用字典作为我的';数据';矩形的对象?,javascript,d3.js,Javascript,D3.js,我想做四个宽度和高度都固定的矩形 var rects = { key1: { x: base_x, y: base_y, fullname: "Seed", cnt: 3500, row: 1 }, key2: { x: 2*base_x, y: base_y, fullname: "Series A", cnt: 4700, row: 1 }, key3: { x: 3*base_x, y: base_y, fullname: "Series B", cnt: 2300, r
var rects = {
key1: { x: base_x, y: base_y, fullname: "Seed", cnt: 3500, row: 1 },
key2: { x: 2*base_x, y: base_y, fullname: "Series A", cnt: 4700, row: 1 },
key3: { x: 3*base_x, y: base_y, fullname: "Series B", cnt: 2300, row: 1},
key4: { x: 4*base_x, y: base_y, fullname: "Series C", cnt: 1750, row: 1}}
我知道如果我将{}
替换为[]
将其转换为数组,并且如果我去掉了键,因为数组不能有键,那么我可以使用它,那么我就可以将它们转换为矩形
var rectangles = svg.selectAll(".rect")
.data(rects)
.enter()
.append("rect")
我想稍后在需要键的函数中使用rects
对象
我想我可以用这样的东西,基于矩形创建一个数组
var rects_array = []
for (i = 0; i < d3.keys(rects).length; i++){
rects_array.push(rects[d3.keys(rects)[i]])
}
var rects\u数组=[]
对于(i=0;i
我只是好奇我是否可以直接传入
rects
,而不是从中生成数组。简短回答:不,你不能
D3data()
方法只接受3件事:
- 阵列李>
- 函数李>
- 没什么
rects
对象创建数组的最简单方法是使用:
var rects={
关键1:{
x:“福”,
y:“酒吧”,
全名:“种子”,
政务司司长:3500,
行:1
},
关键2:{
x:“福”,
y:“酒吧”,
全名:“A系列”,
政务司司长:4700,
行:1
},
关键3:{
x:“福”,
y:“酒吧”,
全名:“B系列”,
政务司司长:2300,
行:1
},
关键4:{
x:“福”,
y:“酒吧”,
全名:“C系列”,
政务司司长:1750,
行:1
}
};
console.log(Object.values(rects))