我无法将变量值添加为我在主干.js 中的键名有什么办法吗?看看下面的代码
(function ($) {
Today = Backbone.Model.extend({
});
var data= ['a','b','c'];
for(var i=0;i<data.length;i++){
today.set({i:data[i]});
}
} (jQuery));
我怎么能做到这一点?
我无法将变量值添加为我在主干.js 中的键名有什么办法吗?看看下面的代码
(function ($) {
Today = Backbone.Model.extend({
});
var data= ['a','b','c'];
for(var i=0;i<data.length;i++){
today.set({i:data[i]});
}
} (jQuery));
我怎么能做到这一点?
您应该能够简单地传递data
给today.set()
.
var data = ['a','b','c'];
var today = new Today();
today.set(data);
console.log(today.attributes);
// {0: "a", 1: "b", 2: "c"}
但是,为了解释这个问题:对象文字左侧的标识符:
总是成为键名本身。要将变量的值用作键,您必须使用括号成员操作符。
var tmp = {};
tmp[i] = data[i];
today.set(tmp);
因此,在 javascript 中,带有未引用键的对象文字使用该键的字符串版本:
var i=1;
var obj = {i: "this sets obj.i to this string, not obj['1']"};
如果您想要一个计算密钥,请遵循以下模式:
var keyname = i + 'whatever' + 42;
var obj = {};
obj[keyname] = value;