2017-05-31 63 views
0

我有一個對象數組,我想爲每個對象添加一個類型爲Object的道具,只是該字段的值將是動態的。如何將一個屬性添加到數組中的所有對象並動態設置它的值。-Javascript

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,(在數據其最小值)值時,則‘拉德’值應爲1,同樣地 :的y=206.4(其最大值)的值,然後rad應10.

0和206.4之間的「rad」值應該與'y'的值相對應並且下降在1-10之間(這是「rad」範圍)。

我希望這是有道理的。我會澄清細節,如果需要, 在此先感謝!

+1

你試過一個循環?! – Bergi

回答

3

你可以這樣做(檢查出jsbin):

data.forEach(datum => { 
    datum.plot = { 
    rad: (10 * datum.y)/206.4 || 1 
    } 
}) 

我認爲這是對你轉換到yrad正確的公式......總之,原則是,你可以通過循環對象並動態地將屬性附加到每個對象上。除了編程方面,你只需要弄清楚正確的數學公式是什麼,然後把它放在那裏來計算你需要的任何值。

+1

真棒..感謝噸..解決了我的問題! – user1234

相關問題