如何按逗号拆分对象属性值配对拼接,实现空间信息的格式化展示
问题原因
你当前的代码直接将完整的spaceNumber字符串和完整的spaceName字符串做了拼接,没有对两个字段内逗号分隔的单个条目做一一对应配对,因此输出不符合预期。
实现方案
先将两个字段的内容按, (逗号+空格)分割为数组,再将相同下标的条目配对拼接,最后将配对后的所有条目用, 拼接为完整字符串即可。
修改后的完整代码如下:
const identityData = [ { label: 'Room Number', value: multiSpaceIdentityInformation.roomNumber }, { label: 'Space Info', value: (() => { // 分割为单个条目数组 const spaceNumberList = multiSpaceIdentityInformation.spaceNumber.split(', '); const spaceNameList = multiSpaceIdentityInformation.spaceName.split(', '); // 按索引配对拼接后合并为完整字符串 return spaceNumberList.map((num, index) => `${num} - ${spaceNameList[index]}`).join(', '); })() } ]; return ( <Descriptions size="small" column={1} title="Identity"> {identityData.map(({ label, value }) => ( <Item key={label} label={<Text strong>{label}</Text>}> {value} </Item> ))} </Descriptions> );
注意:该方案默认
spaceNumber和spaceName按逗号分隔后的条目数量完全一致,如果实际场景中可能存在数量不对等的情况,可以增加边界判断逻辑,避免取值为undefined。
内容的提问来源于stack exchange,提问作者Glory Raj
相关产品推荐
相关产品推荐

