如何创建复杂的javascript对象

时间:2014-01-02 18:02:19

标签: javascript json

我试图创建一个javascript对象作为参数发送。

我需要以这种格式发送它:

params (Object) (defaults to: {}) —
    Bucket — required — (String)
    Delete — required — (map)
        Objects — required — (Array<map>)
            Key — required — (String) Key name of the object to delete.

如何构建此对象并将其填写?

我这样做:

var params = {
    Bucket : data.bucket,
    Delete: [{
    Objects:[{ Key:""}] }]  
};

for(i=0;i<data.keys.length;i++){
    params.Delete[0].Objects.push({Key: data.keys[i]})
}

我从库中收到一条错误消息,指出我的对象缺少Objects内的键Delete

当我console.log params时,我

{ Bucket: 'ct.presentations',
Delete: [ { Objects: [Object] } ] }

创建这样的对象的最佳方法是什么?


正如亚历克斯在下面指出的那样,Javascript中的map,并不像我想象的那样是一种数组,所以不是

Delete:[{ 我应该做的 Delete:{

1 个答案:

答案 0 :(得分:3)

您已将Delete数组包含一个以Objects为关键字的对象。听起来它不应该是一个数组:

var params = {
        Bucket : data.bucket,
        Delete: {
            Objects: []
        }
    };

    for(i=0;i<data.keys.length;i++){
        params.Delete.Objects.push({Key: data.keys[i]})
    }

另请注意,我从{Key: ""} {第4行}的[]内删除了Objects。如果您真的打算让一个带有空键的对象作为数组中的第一个条目,请将其添加回来,但我怀疑您没有。