Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用没有键对的对象访问属性值?_Javascript_Node.js_Typescript_Dynamoose - Fatal编程技术网

Javascript 如何使用没有键对的对象访问属性值?

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'

我正在使用dynamoose,一个查询返回以下输出

  [ 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数组。但是,该数组具有一些特殊属性,其中包含有关您可以访问的_____;操作的额外信息。这并不妨碍运行循环或访问阵列中的对象。
。如果你有任何建议,如何改善这门语言,使其更清楚,请提交公关或与我联系。