如何在javascript中通过参数更改属性名称

时间:2016-07-01 18:33:50

标签: javascript jquery frontend

我有一些功能:

function funcName(first_data, SECOND_DATA) {
    // ...some code here...
    data: {dontMatterProp: dontMatterVal, SECOND_DATA: SECOND_DATA},
    // ...some code.....
}

我需要我的财产 名称 'SECOND_DATA'也会改变! 例如在php中可以执行类似{SECOND_DATA} ...

的操作

2 个答案:

答案 0 :(得分:2)

您的问题有点不清楚,但我认为您正在寻找的是这样的:

function funcName(first_data, SECOND_DATA_KEY, SECOND_DATA_VALUE) {
  // ...some code here...
  x = {}
  x.data = {dontMatterProp: dontMatterVal}
  x.data[SECOND_DATA_KEY] = SECOND_DATA_VALUE
  // ...some code.....
}

如果您只想让键等于该值,则可以执行

x.data[SECOND_DATA] = SECOND_DATA

但这有点奇怪。为什么要映射一些东西?没有必要的价值,如果是这样的话,您可以验证密钥是否存在...

您可以在javascript中为动态键使用括号。所以,

var x = {}
x['something'] = 'test'
// x === { 'something': 'test' }

x[something] = 'test2'
// error: something is undefined

var something = 'hello'
x[something] = 'test3'
// x === { 'something': 'test', 'hello': 'test3' }

希望有帮助吗?

答案 1 :(得分:1)

我想你想要:

data[SECOND_DATA] = SECOND_DATA; // assign the value

如果您只是使用:

var data = { SECOND_DATA: SECOND_DATA };

使用对象表示法 - 属性名称将始终为SECOND_DATA