javascript - 将属性名称与其在数组中的值匹配;
问题描述
我试图输出一个字符串,如“团队 1 有以下员工:Joe、Mark 和 John。团队 2 有以下员工:Lauren、Conrad 和 Sumeet。” 我有以下对象:
const teamInfo = {
teams: {
team1: ['Joe', 'Mark', 'John'],
team2: ['Lauren', 'Conrad', 'Batman'],
},
}
我尝试了以下方法,它产生的东西看起来有点像我想要的,但由于输出包含对象,我无法自定义列出名称的输出部分。例如,我不能说“团队 1 包括乔、马克和约翰。团队 2 包括劳伦、康拉德和蝙蝠侠”。
let infoString = "";
for (const [team, employees] of Object.entries(teamInfo.teams)) {
infoString += ` ${team} employees include: ${employees}. `;
}
console.log(infoString)
如何在不使用任何快速或更中级/高级方法的情况下完成此操作?我基本上希望能够使用循环、Object.entries/keys/values 而不是快速快捷方式来使用基本 JS 来做到这一点。
我还尝试了各种循环遍历员工数组并在其中嵌套另一个循环的排列,但这有明显的问题。另一次尝试接近了,但它输出了三遍,而不是一次全部输出。
不只是寻找解决方案;但一些建议。
谢谢你
解决方案
在for
循环中,您可以创建没有最后一项的员工副本,用逗号连接它,然后连接'and'
和最后一个员工姓名:
const teamInfo = {
teams: {
team1: ['Joe', 'Mark', 'John'],
team2: ['Lauren', 'Conrad', 'Batman'],
},
}
let infoString = "";
for (const [team, employees] of Object.entries(teamInfo.teams)) {
infoString += ` ${team} employees include: ${employees.slice(0, -1).join(', ')} and ${employees[employees.length - 1]}\n`;
}
console.log(infoString)
推荐阅读
- spring-boot - 用更高版本覆盖 Spring Boot BOM 策划的依赖项
- google-cloud-dataflow - 有什么办法可以在执行 TextIO 时限制记录?
- algorithm - 如何从给定的父子列表创建树,但子节点不能在其父节点之前创建?
- python - 在python中持续更新最后5个数据集的聚合
- r - 我如何估计最大似然目的地的标准误差
- android - 在 onCreate 函数中访问 onActivityResult 返回的数据
- javascript - 多个函数的 JavaScript 顺序函数执行
- react-native - 如何在 react-native 中使用下拉列表制作搜索栏?
- python - 应该在 django python 还是 sql 中强制执行业务日志?
- css - CSS 联系表格 7 间距