将对象推入并对象Javascript

时间:2015-06-18 08:43:35

标签: javascript json

我有一个像这样定义的变量:

Var France ={

'Nice': {

    inputs: _.extend({
        attrs: {
            text : inp({
                text: { group: 'data', index: 1 },
                'font-size': { group: 'text', index: 2 },
                'font-family': { group: 'text', index: 3 },
                'font-weight': { group: 'text', index: 4 },

            }),
            image: inp({
                'xlink:href': { group: 'presentation', index: 1 }
            })
        },

    }),
    groups: cities

}};

var Paris =  {

    inputs: _.extend({
        attrs: {
            text : inp({
                text: { group: 'data', index: 1 },
                'font-size': { group: 'text', index: 2 },
                'font-family': { group: 'text', index: 3 },
                'font-weight': { group: 'text', index: 4 },

            }),
            image: inp({
                'xlink:href': { group: 'presentation', index: 1 }
            })
        },

    }),
    groups: cities

};

我怎样才能动态地推动法国的另一个城市,比如$(法国).push(巴黎),但这很有效,我怎么能做到这一点呢?

2 个答案:

答案 0 :(得分:2)

简单如下:

France['Paris'] = { ... }

France.Paris = { ... }

您只能对数组(或支持此类的其他类型,但它更高级)使用push操作。你不能推送到对象,因为它们没有被订购。

订购了一个数组,因此您可以使用:

  • push将元素添加到结束
  • pop从结尾删除元素并将其返回
  • unshift将元素添加到开头
  • shift从头开始删除元素并将其返回。

用法:

var x = [];
x.push(1);
//x is now [1];
x.unshift(2);
//x is now [2,1];

答案 1 :(得分:1)

Object不是Array。 要创建新的field,您必须执行类似

的操作
Paris["newkey"] = "aValue"; //Any value like {}, "", [], 0