【发布时间】:2021-12-16 21:06:23
【问题描述】:
我正在使用 Angular,并且我在以下结构中输入数据,键 = 字符串,值 = 字符串数组:
inputObject= {
'employees': [
'bob/january',
'bob/january-february',
'bob/january-march',
'steve/january',
'steve/january-february',
'steve/january-march',
'september',
],
};
我需要通过使用'/'作为分隔符拆分值来转换此对象,因此拆分员工数组中的字符串元素并将其放入一个新对象中,其中'/'之前的字符串值成为键新对象和 '/' 之后的字符串值作为字符串值数组添加。如果员工元素中的值在字符串中没有“/”,则键应该是硬编码的字符串值,例如“n/a”,如下所示
期望的输出:
outputObject = {
'bob': [
'january',
'january-february',
'january-march'
],
'steve': [
'january',
'january-february',
'january-march',
],
'n/a': 'september'
}
我尝试了各种技术,其中一个示例在我尝试添加到地图的 sn-p 中看到。这可以通过添加到新对象或您可以推荐的任何其他数据结构来实现。
inputObject= {
'employees': [
'bob/january',
'bob/january-february',
'bob/january-march',
'steve/january',
'steve/january-february',
'steve/january-march',
'september',
],
};
let outputMap = new Map();
let splitValues = inputObject.employees.map(a => a.split('/'));
console.log(splitValues)
splitValues.forEach(a => {
if(a.length > 1){
outputMap.set(a[0], a[1]);
} else {
outputMap.set('n/a', a[0])
}
});
console.log(outputMap)
【问题讨论】:
标签: javascript arrays angular typescript data-structures