myArray = ['1', '2', '3'];
myObj = { 1-vehicle : 'car', 2-vehicle : 'bike', 3-vehicle : 'train' };
resultObj = {
'1': { '1-vehicle': 'car' },
'2': { '2-vehicle': 'bike' },
'3': { '3-vehicle': 'train' }
};
我有一个对象,其中每个键都以数字开头,并且我也有带有一些值的数组。我试图匹配这些键和值并拆分对象。请帮我。预先感谢。
我已经尝试过了,并且在下面发布了我的代码,但是我不成功
{
Object.keys(myObj).filter((key: any) => {
for (const i in myArray) {
if (myArray[i] === key.charAt(0)) {
newObj[key] = myObj[key]
resultObj[myArray[i]] = newObj
}
}
})
}
答案 0 :(得分:3)
您可以映射所需的零件并将对象分配给单个对象。
此解决方案的特点是封闭对象的组合键。
var array = ['1' , '2' , '3'],
object = { '1-vehicle': 'car', '2-vehicle': 'bike', '3-vehicle': 'train' },
result = Object.assign(
...array.map(v => (k => ({ [v]: { [k]: object[k] } }))(v + '-vehicle'))
);
console.log(result);
答案 1 :(得分:2)
var res = {};
for(let k in myObj){
if(k[0])res[k[0]]= {[k]:myObj[k]};
}
最简单,最短的解决方案是