javascript - 使用 JS 将字符串数组减少为单个字符串
问题描述
我正在尝试将一组字符串简化为单个字符串,只有当我在每个数组中有一个字符串但不超过一个时它才能正常工作。
const listItems = [
{
sys: {
type: 'Link',
linkType: 'Entry',
id: 'm-list-basic-1'
}
},
{
sys: {
type: 'Link',
linkType: 'Entry',
id: 'm-list-basic-2'
}
},
{
sys: {
type: 'Link',
linkType: 'Entry',
id: 'm-list-basic-3'
}
}
];
const listIds = listItems.reduce((a, currentValue) =>
[...a, currentValue.sys.id], [])
// I have also tried `mlistId.toString()`
console.log(...listIds)
目前我得到,例如:
m-list-basic-1 m-list-basic-2 m-list-basic-3
(所有在同一行使用传播)
m-list-basic-1,m-list-basic-2,m-list-basic-3
(逗号使用toString()
而我希望他们像这样单独:
m-list-basic-1
m-list-basic-2
m-list-basic-3
解决方案
如果您尝试将 打印id
为新的行分隔字符串,则不需要 reduce 来执行此操作。相反,您想使用Array.map
, with String.join
with 一个\n
字符。
请参见下面的示例:
const listItems = [
{
sys: {
type: 'Link',
linkType: 'Entry',
id: 'm-list-basic-1'
}
},
{
sys: {
type: 'Link',
linkType: 'Entry',
id: 'm-list-basic-2'
}
},
{
sys: {
type: 'Link',
linkType: 'Entry',
id: 'm-list-basic-3'
}
}
];
console.log(listItems.map(item => item.sys.id).join('\n'));
推荐阅读
- java - 未设置“hibernate.dialect”时,对 DialectResolutionInfo 的访问不能为空
- node.js - 使用 Paginate-v2 插件在数据表中搜索
- javascript - 如何在 ember 中为类属性编写 CSS Conditional?
- react-native - 如何在本机反应中发送客户端密钥和秘密进行身份验证
- google-apps-script - 发布 Google 表格插件
- ios - 在 iOS 中将错误日志消息解析为字符串
- javascript - Docker 代替 rvm、nvm 和所有其他
- google-apps-script - 如何将特定工作表中 A1 范围内的 URL 设置为变量?
- java - 为什么我的程序会跳过替换方法?
- jquery - 如何检测机器是否空闲,15 秒内没有来自服务器的值?