将变量值设置为backbone.js中的键

时间:2013-09-03 05:30:23

标签: javascript jquery backbone.js

我无法在backbone.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));

我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

您应该可以将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"} 

但是,要解释这个问题:Object literals:左侧的标识符始终会成为关键字的名称。要将变量的值用作键,您必须使用bracket member operators

var tmp = {};
tmp[i] = data[i];
today.set(tmp);

答案 1 :(得分:0)

因此在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;