我正试图在unshift()
调用中设置变量名称,如下所示:
var new_index_name = priv.indices[i]["name"], // e.g. "container"
new_index_array.unshift({new_index_name :[]});
但我的new_index_array现在将包含:
[ {new_index_name : []} ]
而不是
[ {"container" : []} ]
问题:
是否可以在push / unshift调用中将变量名称作为key
值传递?
感谢您的帮助!
答案 0 :(得分:5)
这与push
或unshift
您不能将变量用作对象文字中的属性(因为您可以使用标识符作为属性名称,并且变量也由标识符表示)。
你必须构造对象,然后将数据添加到它。
var new_index_name = priv.indices[i]["name"], // e.g. "container"
var ob = {};
ob[new_index_name] = [];
new_index_array.unshift(ob);