У меня есть данные, поступающие из API, в формате, как:

this.userSkills = [ { skill_level: { skill: { id: 1, proficiency: "Beginner", name: "Core Java" } } }, ] 

Я хочу отобразить их в объекты, которые будут похожи на:

 [ {skillId: 1, skillProficiency: "Beginner", skillName: "Core Java"}, {skillId: 7, skillProficiency: "Intermediate", skillName: "ReactJs"}, {skillId: 2, skillProficiency: "Beginner", skillName: "Javascript"}, {skillId: 27, skillProficiency: "Intermediate", skillName: "Common behavioral "}, {skillId: 29, skillProficiency: "Beginner", skillName: "iOS"}, {skillId: 34, skillProficiency: "Beginner", skillName: "API Testing"} ] 

Который с помощью оператора map я попытался преобразовать их в объекты, такие как:

 this.userSkills.map(value ={amp}gt; { const data = { skillId: value.skill_level.skill.id, skillProficiency: value.skill_level.proficiency, skillName: value.skill_level.skill.name }; const test = [] test.push(data); console.log(test) }); 

вот так, но я хочу, чтобы они были массивом объектов, чтобы я мог зацикливаться на них, как я могу преобразовать их в массив объектов?

Как я понял от вас; ты пробовал это?

 this.userSkills.map(value ={amp}gt; { const data = { skillId: value.skill_level.skill.id, skillProficiency: value.skill_level.proficiency, skillName: value.skill_level.skill.name }; const test = [] test.push(data); console.log(test) }); 

Поправьте меня если я ошибаюсь?

Если да, то ваша проблема с test , потому что он находится внутри функции map .

Функция map уже возвращает новый преобразованный массив, проверьте документацию .

попробуй это:

 this.newArr = this.userSkills.map(value ={amp}gt; ({ skillId: value.skill_level.skill.id, skillProficiency: value.skill_level.proficiency, skillName: value.skill_level.skill.name }) ); 

И используйте newArr в ngFor , это должно работать.

 const dataInObject = {}; // Your data here const dataArray = Object.keys(dataInObject).map(index={amp}gt;dataInObject[index]); console.log(dataArray);