Javascript 通过函数参数动态设置json对象的值

Javascript 通过函数参数动态设置json对象的值,javascript,Javascript,如何通过向函数传递json对象的名称来设置json对象中项目的值 例如: 这是否可能,或者我是否应该考虑以不同的方式执行此操作?使用索引器: that.selectedFinderOptions[param] = option; 使用索引器: that.selectedFinderOptions[param] = option; 您使用的短语“JSON对象”让我们有点困惑。JSON是一个或多个javascript对象序列化的扁平字符串表示。因此,您不会使用JSON动态地执行任何操作。

如何通过向函数传递json对象的名称来设置json对象中项目的值

例如:

这是否可能,或者我是否应该考虑以不同的方式执行此操作?

使用索引器:

that.selectedFinderOptions[param] = option;  
使用索引器:

that.selectedFinderOptions[param] = option;  
您使用的短语“JSON对象”让我们有点困惑。JSON是一个或多个javascript对象序列化的扁平字符串表示。因此,您不会使用JSON动态地执行任何操作。这只是一根绳子

如果,您的意思是您有一个javascript对象,那么我们可以讨论选项。对于javascript对象,您有两个选择。首先,您可以在该对象上使用一个属性,并使其值反映所需内容:

var myObj = {};
myObj.inStock = true;
然后,任何人都可以访问
myObj.inStock
并获取该属性的当前值

如果您希望instock的值由函数计算,而不是静态分配给对象,并且希望代码在所有浏览器中都能工作,那么您必须更改通过方法调用访问该值的方式:

var myObj = {};
myObj.getInStockValue = function() {
    // execute whatever code you want here to 
    // compute the desired value and return it when done
};
然后,任何人都可以使用
myObj.getInStockValue()
访问它

在您的特定示例中,您可以更改以下内容:

this.setStateIfExists = function (param, option) {
    // i'd like this to be 'that.selectedFinderOptions.inStock = option'
    that.selectedFinderOptions.param = option;  
}
为此:

this.setStateIfExists = function (param, option) {
    // i'd like this to be 'that.selectedFinderOptions.inStock = option'
    that.selectedFinderOptions[param] = option;  
}
当参数是动态的且包含在变量中时,可以使用
[param]
语法而不是
.param
语法。它们在逻辑上都做相同的事情,但是当要查找的对象的名称在变量中时,只有
[param]
语法起作用。

您使用的短语“JSON对象”让我们有点困惑。JSON是一个或多个javascript对象序列化的扁平字符串表示。因此,您不会使用JSON动态地执行任何操作。这只是一根绳子

如果,您的意思是您有一个javascript对象,那么我们可以讨论选项。对于javascript对象,您有两个选择。首先,您可以在该对象上使用一个属性,并使其值反映所需内容:

var myObj = {};
myObj.inStock = true;
然后,任何人都可以访问
myObj.inStock
并获取该属性的当前值

如果您希望instock的值由函数计算,而不是静态分配给对象,并且希望代码在所有浏览器中都能工作,那么您必须更改通过方法调用访问该值的方式:

var myObj = {};
myObj.getInStockValue = function() {
    // execute whatever code you want here to 
    // compute the desired value and return it when done
};
然后,任何人都可以使用
myObj.getInStockValue()
访问它

在您的特定示例中,您可以更改以下内容:

this.setStateIfExists = function (param, option) {
    // i'd like this to be 'that.selectedFinderOptions.inStock = option'
    that.selectedFinderOptions.param = option;  
}
为此:

this.setStateIfExists = function (param, option) {
    // i'd like this to be 'that.selectedFinderOptions.inStock = option'
    that.selectedFinderOptions[param] = option;  
}

当参数是动态的且包含在变量中时,可以使用
[param]
语法而不是
.param
语法。它们在逻辑上都做相同的事情,但当要查找的对象的名称在变量中时,
[param]
语法是唯一有效的语法。

如果有JSON,则需要对其进行反序列化,在结果对象上设置属性,然后将其转换回JSON。(除非您计划将其全部作为字符串操作来完成。)您真的是指“object”而不是“JSON object”?如果您有JSON,则需要对其进行反序列化,在生成的对象上设置属性,然后将其转换回JSON。(除非你打算把这一切都当作字符串操作来做。)你真的是指“对象”而不是“JSON对象”吗?