如何在TypeScript中将字符串数组转换为对应键值对格式的对象
实现代码
可以直接用数组的reduce方法完成转换,TypeScript版本实现如下:
const test = [ ' data1: 123', ' data2: 3524', ' data3: 5142', ' data4: 84521' ] // 可根据实际场景调整返回值类型,固定key的话也可以写死具体的键名 type ParsedResult = Record<string, number> const result = test.reduce<ParsedResult>((prev, curr) => { // 去除前后空格后按第一个冒号分割为键、值两部分 const [rawKey, rawValue] = curr.trim().split(':', 2) const key = rawKey.trim() const value = Number(rawValue.trim()) prev[key] = value return prev }, {}) console.log(result) /* 输出: { data1: 123, data2: 3524, data3: 5142, data4: 84521 } */
可选优化
如果需要兼容不符合key: value格式的异常条目,可以增加格式校验逻辑:
const result = test.reduce<ParsedResult>((prev, curr) => { const trimmedStr = curr.trim() if (!trimmedStr.includes(':')) return prev const [rawKey, rawValue] = trimmedStr.split(':', 2) const key = rawKey.trim() if (!key) return prev // 如果需要保留值为字符串格式,去掉Number转换即可,同步修改ParsedResult的value类型为string prev[key] = Number(rawValue.trim()) return prev }, {})
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

