Javascript 将字符串名称转换为同名对象

Javascript 将字符串名称转换为同名对象,javascript,jquery,Javascript,Jquery,首先,我的标题可能不是一个很好的标题,所以我会很高兴地更新它与任何建议 所以我的愿望是在一些javascript代码上实现DRY。本质上,除了一行的一部分外,还有三个功能(更多功能)完全相同。所以我的想法是将它模块化,在一个循环中执行一行代码 因此,任何更改之前的代码行在三个不同的函数中都是这样的: ...snip function (prod_sku) { Page.getAttribute(UpdateFieldName).setValue(prod_

首先,我的标题可能不是一个很好的标题,所以我会很高兴地更新它与任何建议

所以我的愿望是在一些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));
        },
因此,正如您所看到的,唯一的区别是ProductName、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
那么,我如何让我的字符串名来表示一个对象呢。prod_sku.ProductName

我可以像下面这样做一系列的if语句,但是…似乎有点挫败了主要目标…当然它减少了很多重复代码,但我希望有一个干净的解决方案

if(arrayUpFldVal == 'ProductName')
{
  Page.getAttribute(UpdateFieldName).setValue(prod_sku.ProductName));
}

因此,任何输入都将受到欢迎

您可以重新编写函数以包含新的“attr”参数:

function (prod_sku, attr)
        {
            Page.getAttribute(UpdateFieldName).setValue(prod_sku[attr]);
        }

您可以使用括号表示法,即,
prod\u sku[“ProductName”]
。请检查