Javascript 如何使用没有键对的对象访问属性值?
我正在使用dynamoose,一个查询返回以下输出Javascript 如何使用没有键对的对象访问属性值?,javascript,node.js,typescript,dynamoose,Javascript,Node.js,Typescript,Dynamoose,我正在使用dynamoose,一个查询返回以下输出 [ Document { cost: 100 }, lastKey: undefined, count: 1, queriedCount: undefined, timesQueried: 1 ] 当我尝试执行typeof(output)时,它返回Object 当我尝试执行Object.keys(output)时,它返回['0','lastKey','count','queryedcount','timesquelled'
[ Document { cost: 100 },
lastKey: undefined,
count: 1,
queriedCount: undefined,
timesQueried: 1 ]
当我尝试执行typeof(output)
时,它返回Object
当我尝试执行Object.keys(output)时,它返回['0','lastKey','count','queryedcount','timesquelled']
当我执行Object.entries(output)
时,它返回[['0',Document{cost:100}],'lastKey',undefined],'count',1],'queryedcount',undefined],'timesquelled',1]
对于我的使用,我需要得到一个看起来像这样的对象{cost:100}
,我现在正在使用它
JSON.parse(JSON.stringify(输出))
这让我
[{cost:100}]
我从未遇到过没有键值对的对象(我是自学的),所以我不知道如何解决这个问题。而目前的方法似乎效率低下而且有点错误。请告诉我怎样才能正确地做这件事
JSON.stringify(output) //=> "[ { cost: 100 } ]"
这意味着您有一个数组(由[]
表示)和一个项,这是一个对象(由{}
表示),带有一个键成本
使用[0]
获取数组中的第一项,然后使用.cost
获取cost属性
console.log(output[0].cost) //=> 100
您在该数组上看到其他键的原因是,dynamoose库似乎在返回该数组之前向该数组添加了一些附加属性。这相当于:
// vanilla js, not typescript
const output = [ { cost: 100 } ]
output.count = 1
output.timesQueried = 1
这将提供内容之外的数组属性。dynamoose库似乎使用此方法对查询的元数据以及返回的数据进行编码
数组的默认JSON序列化策略不序列化自定义数组属性,只序列化数组成员。它称为。它只有一个元素(
{cost:100}
),位于索引0
,但有其他属性。是否尝试输出[0]
?这里的所有答案都是正确的。至少如果您正在进行扫描或查询。这是一个数组,执行输出[0]
将获得单个对象。正如文档中提到的:返回的结果数组是对象的标准JavaScript数组。但是,该数组具有一些特殊属性,其中包含有关您可以访问的_____;操作的额外信息。这并不妨碍运行循环或访问阵列中的对象。
。如果你有任何建议,如何改善这门语言,使其更清楚,请提交公关或与我联系。