JavaScript/使用映射创建对象
我在JS中有下一个定义:JavaScript/使用映射创建对象,javascript,Javascript,我在JS中有下一个定义: var multipartMap = { Parts: [] }; 所以我可以做下一步: multipartMap.Parts[partParams.PartNumber - 1] = { ETag: mdata.ETag, PartNumber: Number(partParams.PartNumber) }; multipartMap[id].Parts[partParams.PartNumber
var multipartMap = {
Parts: []
};
所以我可以做下一步:
multipartMap.Parts[partParams.PartNumber - 1] = {
ETag: mdata.ETag,
PartNumber: Number(partParams.PartNumber)
};
multipartMap[id].Parts[partParams.PartNumber - 1] = {
ETag: mdata.ETag,
PartNumber: Number(partParams.PartNumber)
};
但我想有能力做下一件事:
multipartMap.Parts[partParams.PartNumber - 1] = {
ETag: mdata.ETag,
PartNumber: Number(partParams.PartNumber)
};
multipartMap[id].Parts[partParams.PartNumber - 1] = {
ETag: mdata.ETag,
PartNumber: Number(partParams.PartNumber)
};
所以multipartMap也将是对象的映射
编辑:
为了澄清这一点,我希望multipartMap[0]中包含部件数组,multipartMap[1]中也包含部件数组,以此类推。。该数字将是用户提供的动态参数
我该怎么做呢?看起来像是你想要的
var multipartMap = {
SomeId: {
Parts: []
},
SomeOtherId: {
Parts: []
}.
etc.
};
现在,您在multipartMap[id]中提到的id。部件可以是SomeId或SomeOtherId
编辑添加:您提到ID将是动态的。那很好,也一样
你先从
var multipartMap = {};
然后,当您获得一个id和一个部件数组时,您可以执行以下操作
multipartMap[id] = {Parts: []};
您将得到与上面相同的结构。我仍然做不到:multipartMap[id].Parts[partParams.PartNumber-1]。Is表示multipartMap[id]未定义。id是我从用户那里获得的外部参数。@或首先提交multipartMap[id]=[]或multipartMap[id]={}。但我不知道id。它是动态的,取决于用户。编辑以响应。一旦有了空对象,就可以添加所需的任何id/值对。