angular - 将 Reduce 数组映射到字符串
问题描述
我有一个数组映射函数,它可以帮助我将对象数组缩减为一个简单的字符串。
const formatEmails: (arr: { "default" : string }[]) => string = (arr: { "default" : string }[]) =>
arr.map(e => e["default"]).reduce((e, i) => e + i + "; ", "");
这会输出我没有默认的实际电子邮件地址。但是,如果我的电子邮件看起来像这样并且不仅有 default 作为 key 怎么办?
person_emails: [{ "default": 'test1@test.com' }, { "home": 'test2@test.com' }, { "work": 'test3@test.com' }]
我将如何处理以及如何生成例如 “default:test1@test.com; home:test2@test.com; work:test3@test.com”的字符串
也只是为了清楚我的代码调用函数 formatEmails 每次我们像这样读取数据导出的一行
args.rowData["person_emails"] = formatEmails(args.rowData["person_emails"]);
解决方案
只需加入对象条目
const person_emails = [{ "default": 'test1@test.com' }, { "home": 'test2@test.com' }, { "work": 'test3@test.com' }];
const res = person_emails.map(e =>
Object.entries(e).map(en => en.join(':')).join('; ')
).join('; ');
console.log(res);
以上也适用于单个对象中的多对
推荐阅读
- javascript - 这真的是 JAVASCRIPT 中的错误,还是我在日期、数据类型上做错了什么?
- android - 引起:android.view.InflateException:二进制 XML 文件第 16 行:二进制 XML 文件第 16 行:错误膨胀 cl
- javascript - 模板文件中的Angular 4绑定功能
- sql - postgres 对多个单词使用 SIMILAR TO
- javascript - EBUSY:资源繁忙或锁定,取消链接
- angular - Angular 6基于同一组件中的几个不同的api调用路由多个参数,这只是糟糕的设计吗?
- python - 将十六进制字符串转换为 ascii
- hyperledger-fabric - 如何在余额转账中启用完整登录?
- r - 如何在R中逐年重叠ggplot组中的系列
- java - Spring 数据规范 + JPA 标准。如果 root.join(ListAttribute) 为 null,则查询不起作用