如何转换为:
[{skill_1: "java", level_1: 5, skill_2: "js", level_2: 2, skill_3: "docker", level_3: 2}]
收件人:
[{name : "java", level:5} , {name : "js", level:2}, {name : "docker", level:2}]
答案 0 :(得分:0)
Ciao,您可以使用for
从对象中获取skill
和level
,例如:
let input = [{skill_1: "java", level_1: 5, skill_2: "js", level_2: 2, skill_3: "docker", level_3: 2}];
let result = [];
let values = Object.values(input)[0];
for (let i = 1; i <= 3; i++) {
let obj_res = {};
obj_res.name = values["skill_" + i];
obj_res.level = values["level_" + i];
result.push(obj_res);
}
console.log(result);
注意:我认为最后一个level
应该是level_3
,而不是level_2
。
答案 1 :(得分:0)
let a = [{skill_1: "java", level_1: 5, skill_2: "js", level_2: 2, skill_3: "docker", level_3: 2}];
let res = [];
// iterate object
for (const [k, v] of Object.entries(a[0])){
// string to array
let ka = k.split("_");
// check if key already exists in res
if(res[parseInt(ka[1])-1]){
// exists
// assign to dictionary
res[parseInt(ka[1])-1][ka[0]] = v;
}else{
// not exit
// create dictionary
res[parseInt(ka[1])-1] = {[ka[0]]: v};
}
}
console.log(res);
// [
// { skill: 'java', level: 5 },
// { skill: 'js', level: 2 },
// { skill: 'docker', level: 2 }
// ]