我有一个对象数组,我想向每个对象添加一个 Object
类型的 prop,只是该字段的值是动态的。
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 。 //将 prop 添加到数组中的第一项。
data[0].plot = {rad: 1}
我的问题是:
1)如何将 "plot"
对象添加到数据中的每个项目
2) rad 的值应该与数据中“y”的值相对应
即:如果 'y' 的值 =0,
(数据中的最小值),则“rad”值应为 1,
类似地:y=206.4
的值(其最大值),那么rad
应该是10。
0 到 206.4 之间的“rad”值应对应于“y”的值,并且介于 1-10 之间(这是“rad”范围)。
我希望这是有道理的。如果需要的话我会详细说明 提前致谢!!
最佳答案
您可以执行以下操作(查看 jsbin ):
data.forEach(datum => {
datum.plot = {
rad: (10 * datum.y)/206.4 || 1
}
})
我认为这是将 y
转换为 rad
的正确公式...无论如何,原理是您可以循环遍历对象并将属性附加到每个对象一个动态的。除了编程方面之外,您只需要找出正确的数学公式是什么,然后将其放在那里来计算您需要的任何值。
关于javascript - 如何向数组中的所有对象添加属性并动态设置其值。-Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44274211/