如何按自定义顺序拼接对象中存在的字符串值?
解决方案
你原来的方案没法直接修改来实现自定义顺序,得换个思路——先把你需要的字段顺序做成一个数组,再基于这个数组筛选非空值并拼接,具体步骤如下:
- 定义你想要的字段顺序数组:
const desiredOrder = ['company', 'buildingName', 'streetName', 'townCity', 'county', 'postCode'];
- 遍历这个数组,过滤掉值为空字符串的字段,提取对应的值后拼接:
const address = { buildingName: '', company: 'My org', county: 'My County', postCode: 'My Postcode', streetName: 'My street', townCity: 'My Town' }; const formattedAddress = desiredOrder .filter(key => address[key] !== '') // 过滤空值字段 .map(key => address[key]) // 提取对应的值 .join(', '); console.log(formattedAddress); // 输出:My org, My street, My Town, My County, My Postcode
为什么原来的方案不行?
Object.keys(address)返回的是对象键的默认顺序(此处为字母排序),没法强制改成你需要的自定义顺序,所以必须基于预先定义的顺序数组来处理,才能保证输出顺序完全符合要求。
内容的提问来源于stack exchange,提问作者physicsboy
相关产品推荐
相关产品推荐

