我试图创建一个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:{
答案 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
。如果您真的打算让一个带有空键的对象作为数组中的第一个条目,请将其添加回来,但我怀疑您没有。