0
首先,我的標題可能不是一個很好的標題,因此我會很樂意用任何建議更新它。將字符串名稱轉換爲對象的名稱
所以我的願望是在一些JavaScript代碼上實現DRY。實質上,除了一行的一部分外,還有三個功能(更多內容)完全相同。所以我的想法是模塊化,並在一個循環執行一行。
所以代碼的任何改動之前的行會看起來像這樣的三個不同的功能:
...snip
function (prod_sku)
{
Page.getAttribute(UpdateFieldName).setValue(prod_sku.ProductName));
},
...snip 2
function (prod_sku)
{
Page.getAttribute(UpdateFieldName).setValue(prod_sku.ProductSKU));
},
...snip 3
function (prod_sku)
{
Page.getAttribute(UpdateFieldName).setValue(prod_sku.ProductQty));
},
因此,大家可以看到的唯一差異是產品名稱,ProductSKU,ProductQty。
所以我的想法是有一個調用,其中要更新的字段被傳遞,然後拆分成一個數組。
passed in as 'ProductName,ProductSKU,ProductQty,...' (UpdateFieldValue is the parm variable)
split into an array as var arrayUpFldVal = UpdateFieldValue.split(',');
然後通過數組循環執行數組val,並連接數組。
function (prod_sku)
{
Page.getAttribute(UpdateFieldName).setValue(prod_sku +'.' + arrayUpFldVal [index]));
},
只有當你可能預測將要將對象轉換爲能夠連接的字符串表示形式時。
[object Object].ProductNumber
那麼如何讓我的字符串名稱代表一個對象..i.e。 prod_sku.ProductName
我可以做一系列的if語句,如下面的,但...有點似乎打敗了主要目標...確定它減少了很多重複代碼,但我希望有一個乾淨的解決方案。
if(arrayUpFldVal == 'ProductName')
{
Page.getAttribute(UpdateFieldName).setValue(prod_sku.ProductName));
}
因此,任何輸入,將不勝感激
你可以使用括號標記,即'prod_sku [「產品名稱「]'。 – Seiyria
檢查https://docs.python.org/2.7/library/functions.html#eval – bosnjak