将对象转换为数组
convert object into array
我有来自 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 => {
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)
});
像这样,但我希望它们是一个对象数组,以便我可以循环遍历它们,如何将它们转换为对象数组?
const dataInObject = {}; // Your data here
const dataArray = Object.keys(dataInObject).map(index=>dataInObject[index]);
console.log(dataArray);
正如我从你那里了解到的;你试过这个吗?
this.userSkills.map(value => {
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
函数已经 return 一个新的转换数组,检查 documentation。
试试这个:
this.newArr = this.userSkills.map(value =>
({
skillId: value.skill_level.skill.id,
skillProficiency: value.skill_level.proficiency,
skillName: value.skill_level.skill.name
})
);
并在 ngFor
中使用 newArr
,应该可以。
我有来自 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 => {
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)
});
像这样,但我希望它们是一个对象数组,以便我可以循环遍历它们,如何将它们转换为对象数组?
const dataInObject = {}; // Your data here
const dataArray = Object.keys(dataInObject).map(index=>dataInObject[index]);
console.log(dataArray);
正如我从你那里了解到的;你试过这个吗?
this.userSkills.map(value => {
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
函数已经 return 一个新的转换数组,检查 documentation。
试试这个:
this.newArr = this.userSkills.map(value =>
({
skillId: value.skill_level.skill.id,
skillProficiency: value.skill_level.proficiency,
skillName: value.skill_level.skill.name
})
);
并在 ngFor
中使用 newArr
,应该可以。