TypeScript中处理嵌套对象数组拼接字符串时join方法报错如何解决
问题原因
你定义的tempObj是对象数组类型,而非单个对象,直接访问tempObj.receipent会返回undefined,这就是两次调用map都报错的根本原因。
解决方法
场景1:tempObj仅包含1个元素(和你给出的示例结构一致)
直接取数组第一个元素的receipent属性即可,额外增加空值兼容逻辑避免报错:
// 先取数组首项,加可选链兼容空值场景,默认赋值空数组保证map可正常调用 const receipentList = tempObj[0]?.receipent || []; const result = receipentList.map(item => item.receipentName).join(',');
场景2:tempObj包含多个元素,需要拼接所有元素下的receipentName
使用flatMap展开所有receipent数组后再拼接:
const result = tempObj.flatMap(obj => obj.receipent?.map(item => item.receipentName) || []).join(',');
内容的提问来源于stack exchange,提问作者vaishali
相关产品推荐
相关产品推荐

