我有这个简单的字典:
searchAction()
import java.util.List;
/**
* Created by aaron on 11/8/2017.
*/
public abstract class Selecter<ACTION> {
public abstract class State<A> {
public abstract List<A> getActions();
public abstract A selectAction(List<A> list, int selector);
}
public ACTION searchAction(State<ACTION> state, int selector) {
return state.selectAction(state.getActions(), selector);
}
}
现在我想为以下内容创建一个字典:
var x = {'pitchName': 'pitch1'}
然而,这引发了错误。
如果我尝试:
console.log(x.pitchName)
>> pitch1
只返回:
{x.pitchName : 'data'}
如何创建一个字典,其中键是前一个字典的值?最终目标是:
var z = x.pitchName
{z: 'data'}
答案 0 :(得分:4)
对象文字将键转换为字符串。在您的情况下,您希望使用变量作为键,因此您需要分两步执行:
var z = {};
z[x.pitchName] = 'data';
正如CRice在对该问题的评论中指出的那样,如果您使用的是ES2015,也可以使用计算属性。有关详细信息,请参阅Object Initializers的MDN页面。那里的语法如下:
var z = {[x.pitchName]: 'data'};