我试图像这样在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" : []} ]


题:
是否可以在推送/取消移位调用中将变量名作为key值传递?

感谢帮助!

最佳答案

pushunshift无关

您不能将变量用作对象文字中的属性(因为可以将标识符用作属性名,并且变量也由标识符表示)。

您必须构造对象,然后将数据添加到其中。

var new_index_name = priv.indices[i]["name"], // e.g. "container"
var ob = {};
    ob[new_index_name] = [];
    new_index_array.unshift(ob);

09-16 13:55