javascript - Angular - Typescript - 试图将多个对象推入一个新的对象数组但未定义?
问题描述
我正在创建一个 Angular 服务来从后端的指定资源中获取数据。此资源将数据行作为流返回,我想将它们存储在一个数组中,以便当我使用此方法调用服务时,我可以访问每个有效负载的数据。我有一种方法来映射数据流,它使用extractRecords
下面第二个片段中显示的辅助函数。
getRecords() {
return this._records = this._resourceService.search(SOMECONSTANT, {})
.pipe(map(extractRecords))
.pipe(shareReplay()) as Observable<Data[]>;
我已经调试过,问题是在我推送每个对象数组之后,下面的记录 [] 数组是未定义的r.payload.push
function extractRecords(result) {
const records = [];
if (!isNullOrUndefined(result)) {
result.forEach(r => {
if (!isNullOrUndefined(r['payload'])) {
records.push(r.payload);
}
});
}
return records;
}
r.payload
每次循环代码时返回一个对象,并返回一个对象,如下所示:
name: "Meredith",
lastname: "Palmer",
something: "Micheal",
identifier: "Scott",
somethingelse: "Rabies",
blah: "Awareness",
blue: "ProAm",
kneecap: "FunRun"
循环将返回 1000 个这样的对象,我想将它们作为对象数组存储在记录数组中,以便我的记录对象看起来像:
records: [0]
name: "Meredith",
lastname: "Palmer",
something: "Micheal",
identifier: "Scott",
somethingelse: "Rabies",
blah: "Awareness",
blue: "ProAm",
kneecap: "FunRun"
[1]
name: "Meredith",
lastname: "Palmer",
something: "Micheal",
identifier: "Scott",
somethingelse: "Rabies",
blah: "Awareness",
blue: "ProAm",
kneecap: "FunRun"
解决方案
extractRecords() 函数中有两个 if 条件。使用调试器检查代码是否正在进入它们中的每一个,换句话说,在每个 if 下放置一个断点,并查看它是否在两者中都停止。
推荐阅读
- python - AWS Lambda python 发送邮件
- python - 如何管理上传和下载文件?
- xslt - XSLT:如何在 p 元素中连接 t 元素
- powershell - 比较 powershell 中的 2 个 csv 用户列表并在 csv 文件上创建所有差异
- python - Ansible:ipaddr 过滤器需要在 ansible 控制器上安装 python 的 netaddr
- python - 如何从python中的字符串中提取字节数据?
- json - valuekind 的 JsonElement 参数未定义错误
- angular - 如何在单击 Angular 中的一行时扩展 Mat Table 中的多行?
- azure - Rust:从 Azure 事件中心接收 AMQP 消息
- firebase - SetState 不会改变颤振火力中的值