Javascript 迭代对象数组并使用迭代值创建新对象
第一次在这里发布,希望得到一些帮助,我似乎不知道如何解决这个问题。它基本上是创建一个函数,该函数接收返回新对象的对象数组 由于某些原因,push不会通过并返回push的error属性未定义Javascript 迭代对象数组并使用迭代值创建新对象,javascript,arrays,object,Javascript,Arrays,Object,第一次在这里发布,希望得到一些帮助,我似乎不知道如何解决这个问题。它基本上是创建一个函数,该函数接收返回新对象的对象数组 由于某些原因,push不会通过并返回push的error属性未定义 const organizeInstructors=函数(讲师){ 让output={};//那么创建对象的 for(设i=0;i 数据还原( (r,c)=>( !r[c.course]//检查累加器是否没有c.course作为键 ?((r[c.course]=[]),r[c.course].push(c.
const organizeInstructors=函数(讲师){
让output={};//那么创建对象的
for(设i=0;i ]));代码>看起来您对迭代数组和键入对象有点困惑
let organizeInstructors = function(instructors) {
let output = {}; // so the obvious which is to create the object
for(let i = 0; i < instructors.length; i++) {
const instructor = instructors[i]
if(!output[instructor.course]) {
output[instructor.course] = []
}
output[instructor.course].push(instructor.name)
}
return output;
}
console.log(organizeInstructors([
{name: "Samuel", course: "iOS"},
{name: "Victoria", course: "Web"},
{name: "Karim", course: "Web"},
{name: "Donald", course: "Web"}
]))
让organizeInstructors=函数(讲师){
让output={};//那么创建对象的
对于(设i=0;i
添加const讲师
也会使阅读变得更容易看起来您对迭代数组和键入对象有点困惑
let organizeInstructors = function(instructors) {
let output = {}; // so the obvious which is to create the object
for(let i = 0; i < instructors.length; i++) {
const instructor = instructors[i]
if(!output[instructor.course]) {
output[instructor.course] = []
}
output[instructor.course].push(instructor.name)
}
return output;
}
console.log(organizeInstructors([
{name: "Samuel", course: "iOS"},
{name: "Victoria", course: "Web"},
{name: "Karim", course: "Web"},
{name: "Donald", course: "Web"}
]))
让organizeInstructors=函数(讲师){
让output={};//那么创建对象的
对于(设i=0;i
添加const讲师
也使得使用reduce
data=[{name:“Samuel”,课程:“iOS”},{name:“Victoria”,课程:“Web”},{name:“Karim”,课程:“Web”},{name:“Donald”,课程:“Web”},];
getObj=(数据)=>
数据还原(
(r,c)=>(
!r[c.course]//检查累加器是否没有c.course作为键
?((r[c.course]=[]),r[c.course].push(c.name))//然后创建一个与键对应的数组,然后push c.name
:r[c.course].push(c.name),//否则将c.name推送到相应的数组中
R
),
{}
);
console.log(getObj(数据))代码>使用reduce
data=[{name:“Samuel”,课程:“iOS”},{name:“Victoria”,课程:“Web”},{name:“Karim”,课程:“Web”},{name:“Donald”,课程:“Web”},];
getObj=(数据)=>
数据还原(
(r,c)=>(
!r[c.course]//检查累加器是否没有c.course作为键
?((r[c.course]=[]),r[c.course].push(c.name))//然后创建一个与键对应的数组,然后push c.name
:r[c.course].push(c.name),//否则将c.name推送到相应的数组中
R
),
{}
);
console.log(getObj(数据))代码>这将使用该方法
请注意,这不会检查值是否已经存在于课程数组中,而只是盲目地添加。这可能意味着您在同一课程中获得多个同名实例
const organizeInstructors=函数(讲师){
返回讲师。减少((累积,当前)=>{
//如果累积对象中没有课程,请添加它。
如果(!累计[当前课程])累计[当前课程]=[];
//添加当前名称。
累计[current.course].push(current.name);
//返回下一次迭代的累积对象。
累积收益;
}, {});
}
console.log(organizeInstructors([{
姓名:“塞缪尔”,
课程:“iOS”
},
{
姓名:“维多利亚”,
课程:“网络”
},
{
姓名:“卡里姆”,
课程:“网络”
},
{
姓名:“唐纳德”,
课程:“网络”
}
]));代码>这将使用该方法
请注意,这不会检查值是否已经存在于课程数组中,而只是盲目地添加。这可能意味着您在同一课程中获得多个同名实例
const organizeInstructors=函数(讲师){
返回讲师。减少((累积,当前)=>{
//如果累积对象中没有课程,请添加它。
如果(!累计[当前课程])累计[当前课程]=[];
//添加当前名称。
累计[current.course].push(current.name);
//返回下一次迭代的累积对象。
累积收益;
}, {});
}
console.log(organizeInstructors([{
姓名:“塞缪尔”,
课程:“iOS”
},
{
姓名:“维多利亚”,
课程:“网络”
},
{
姓名:“卡里姆”,
课程:“网络”
},
{
姓名:“唐纳德”,
课程:“网络”
}
]));代码>我认为他们试图进行代码格式化并添加两个额外的back tick你需要了解讲师[课程]
和讲师之间的区别。课程
我认为他们试图进行代码格式化并添加两个额外的back tick你需要了解讲师[课程]之间的区别
和讲师。当然
你好,马克鲍尔,非常感谢!嗨,MarkCBall,非常感谢你!你可以