我试图从属于" class"的每个数组中的对象中获取类code
属性值。 (我知道我的数据很复杂)。
这是我的学生阵列:
student = [
{"class":[{
"code":"PSJ001",
"professor":"McHale",
"description":"course description"}]
},
{"class":[{
"code":"ENG303",
"professor":"Dench",
"description":"course description"}]
},
{"class":[{
"code":"SCI003",
"professor":"Biju",
"description":"course description"}]
}
]
我想要得到的是......
['PSJ001','ENG303','SCI003']
这就是我的......
let classCodes = [];
for (const i in student) {
classCodes = classCodes.concat(student[i].map(obj => {
return obj.code;
}));
}
我在这里做错了什么? (用jsx编写)
答案 0 :(得分:4)
您可以使用map()
获得所需的结果
var student = [{"class":[{"code":"PSJ001","professor":"McHale","description":"course description"}]},{"class":[{"code":"ENG303","professor":"Dench","description":"course description"}]},{"class":[{"code":"SCI003","professor":"Biju","description":"course description"}]}];
var result = student.map(function(e) {
return e.class[0].code;
});
console.log(result)
答案 1 :(得分:0)
基本上这将是可靠的:
student.map(o => o.class.map(c => c.code)).reduce((obj, arr) => arr.push(...obj) && arr, []);
首先我们使用.map()
来获取类,然后我们再次使用.map()
来获取代码。这给了我们一组数组。然后我们使用.reduce()
来展平该数组。