typescript - 如何从打字稿集合中合并字典?
问题描述
我已将 typescript-collection 包安装到我的 Angular 项目中以使用 Dictionary 类型。我想将社交媒体中的所有最新帖子与图像发布日期一起保存在字典中。在此之后,我想将所有字典合并到一个字典中。
let TwitterPosts = this.getLatestTwitterPosts();
let InstagramPosts = this.getLatestInstagramPosts();
let FacebookPosts = this.getLatestsFacebookPosts();
getLatests[type]Posts-Methods 是这样的:
const type = 'twitter';
let TwitterPosts = new Collections.Dictionary<number, PostSocialmediaFeedComponent>();
for (let count = 0; count < 10; count++) {
let PostedDate: Date;
let url: string;
// USING THE API TO GET THE VALUES
TwitterPosts.setValue(count, new PostSocialmediaFeedComponent(url, PostedDate, type));
}
return TwitterPosts;
解决方案
只需使用一个简单的对象,合并就变得微不足道并且在语法上得到支持。不要在不需要的复杂库上浪费时间。
const type = 'twitter';
const twitterPosts: {[key: number]: PostSocialmediaFeedComponent} = {};
for (let count = 0; count < 10; count++) {
// USING THE API TO GET THE VALUES
twitterPosts[count] = new PostSocialmediaFeedComponent(url, PostedDate, type);
}
return TwitterPosts;
除了简化依赖关系并使您的代码更简单之外,使用对象还为您提供了对琐碎合并的语法支持。
const twitterPosts = this.getLatestTwitterPosts();
const instagramPosts = this.getLatestInstagramPosts();
const facebookPosts = this.getLatestsFacebookPosts();
const merged = {
...twitterPosts,
...instagramPosts,
...facebookPosts
};
这是内置 ECMAScript 标准库功能的语法糖Object.assign
const merged = Object.assign({}, twitterPosts, instagramPosts, facebookPosts);
推荐阅读
- c++ - 编写接受通用 n 维函数的模板化递归积分方法
- html - Chrome PDF 下载缓存文件
- python - 使用 Python 连接到 SQL Server 时,用户“”登录失败
- node.js - NodeJS 的 OWL 推理器
- html - 为什么我不能摆脱下拉按钮中的插入符号?
- ejb - 检查 MDB 是否正在运行
- powershell - Powershell - 将结果加在一起
- swift - SwiftUI - 安排通知在特定日期后重复
- firebase - Firebase 模拟器警告,根据 GCLOUD_PROJECT 估计 Firebase 配置。初始化 firebase-admin 可能会失败
- pattern-matching - 酉矩阵是如何排列的?- 量子模式匹配