2016-05-18 74 views
0

這可能是一個簡單的答案,但我仍然在學習,所以我在這裏。我有一個可以在下面看到的物體陰影。我也有一個html值元素,我試圖分割值並將其放入我的對象。簡單地將分割變量添加到對象中?

然而,它試圖添加到shade.color.fill不退出我需要它添加到shade.color.cord代替。

value="type|Color" 

的Javascript

var obj = { 
    color: { 
     Type: null 
    } 
} 

var fill = this.getAttribute('value').split("|"); 
shade.color.fill[0] = fill[1]; 
console.log(obj.type.color); 

錯誤:

TypeError: obj.type.fill is undefined 
+0

'fi ll [0] = cord'因此你的值將賦值給'shade.color.cord',你正在訪問'shade.color.fill',它會給你'undefined'作爲錯誤 – Apb

+0

@Apb你是正確的,但是我是試圖將fill [1]值添加到對象shade.color.cord和cord應該是fill [0]的值。 – Elevant

+0

是的。那麼問題是什麼? – Apb

回答

2

如果你需要做什麼,我認爲你需要做的,這應該工作(使用方括號,而不是爲點記號以動態設置名稱):

var shade = { 
    color: { 
     cord: null 
    } 
} 

var fill = this.getAttribute('value').split("|"); 
shade.color[fill[0]] = fill[1]; 
console.log(shade.color.cord); 
+0

完美的感謝廣場與點符號之間的區別是什麼? – Elevant

+0

@Elevant方括號表示法接受字符串值作爲鍵,而點表示法明確接受名稱。由於您是從字符串值設置名稱,所以您需要方括號。 –