如何创建复杂的javascript对象

如何创建复杂的javascript对象,javascript,json,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 d

我试图创建一个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.
创建这样的对象的最佳方法是什么


正如Alex在下面指出的,Javascript中的
map
不是我想象中的数组类型,因此

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

您制作了
Delete
一个数组,其中包含一个对象,该对象将
对象作为键。听起来它不应该是数组:

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

    for(i=0;i<data.keys.length;i++){
        params.Delete.Objects.push({Key: data.keys[i]})
    }
var参数={
Bucket:data.Bucket,
删除:{
对象:[]
}
};

对于(i=0;itry params.Delete[0])push({Key:data.keys[i]}@Dan,它给了我
对象#没有方法“push”
Wow是因为缩进很难读取。:-
map
在其他语言中通常转换为普通对象
{}
JavaScript
中的
。这听起来对我来说是对的。@AlexWayne哦。这就解释了。我认为map是一种列表类型。这很有效,除了
Delete[0]
应该改为
Delete
,因为它不再是一个数组。另一方面它给了我错误around@Houseman它被称为
map
,因为它“映射”值的键。其他名称是“hash”或“dictionary”。大多数语言对此都有一个构造,在JavaScript中,该构造是“object”。
{ Bucket: 'ct.presentations',
Delete: [ { Objects: [Object] } ] }
var params = {
        Bucket : data.bucket,
        Delete: {
            Objects: []
        }
    };

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