我有一个对象数组,我想为每个对象添加一个Object
类型的道具,只是该字段的值将是动态的。
var data= [
{ name:"Jan", y:0 },
{ name:"Feb", y: 71.5 },
{ name: "Mar", y:106.4 },
{ name: "Apr", y:106.4 },
{ name: "May", y:0 },
{ name: "Jun", y:106.4 },
{ name: "Jul", y:166.4 },
{ name: "Aug", y:36.4 },
{ name: "Sep", y:0 },
{ name: "Oct", y:26.4 },
{ name: "Nov", y:206.4 },
{ name: "Dec", y:92.4 }
]
现在我想添加一个道具。 //将prop添加到数组中的第一项。
data[0].plot = {rad: 1}
我的问题是:
1)如何将"plot"
对象添加到数据中的每个项目
2)rad
的值应该是这样的,它应该对应于' y'的值。在数据中
即:如果'y' =0,
的值(数据中的最小值)则为" rad"值应为1,
同样:y=206.4
(其最大值)的值,然后rad
应为10.
" rad" 0到206.4之间的值应该对应于' y'并且介于1-10之间(这是" rad"范围)。
我希望这是有道理的。如果需要,我会详细说明, 在此先感谢!!
答案 0 :(得分:3)
您可以执行以下操作(请查看jsbin):
data.forEach(datum => {
datum.plot = {
rad: (10 * datum.y)/206.4 || 1
}
})
我认为这是将y
转换为rad
的正确公式...无论如何,原则是您可以循环遍历对象并动态地将属性附加到每个对象。除了编程方面,你只需要找出正确的数学公式,然后把它放在那里计算你需要的任何值。