gpt4 book ai didi

javascript - 有两个对象的数组,在这些数组中,如果 ID 相同,我想匹配 ID,我需要新数组,其中包含相同 ID 的组合信息

转载 作者:行者123 更新时间:2023-11-30 13:49:52 25 4
gpt4 key购买 nike

我需要通过匹配 ID 从两个数组中收集数据并将该数据推送到一个新数组中。

我试过通过循环来做这些事情,但它不能准确地推送。在第一个循环中,我迭代了学生的数组,在第二个循环中,我以类(class)数组的内部循环为目标。

var students = [
{
_id: 'std1',
name: 'Bill Gates',
age: 30
},
{
_id: 'std2',
name: 'Steve Jobs',
age: 30
},
{
_id: 'std3',
name: 'Suzanne Collins',
age: 30
}];

var courses = [
{
name: 'Maths',
std_id: ['std3', 'std1']
},
{
name: 'Computer Science',
std_id: ['std3', 'std2']
},
{
name: 'Commerce',
std_id: ['std1']
},
]

var sorted = [];
for(var i=0; i<students.length; i++){
for(var j=0; j<courses.length; j++){
if(students[i]._id == courses[j].std_id){
sorted.push({'name' : students[i].name, 'studen ID' :students[i]._id, 'courses' :[courses[j].name]})

}
}

}

console.log(sorted);

{
course: ['Maths','Commerce']
name: 'Bill Gates',
studentId: 'std1'
}

最佳答案

试试这个:

var students = [
{
_id: 'std1',
name: 'Bill Gates',
age: 30
},
{
_id: 'std2',
name: 'Steve Jobs',
age: 30
},
{
_id: 'std3',
name: 'Suzanne Collins',
age: 30
}];

var courses = [
{
name: 'Maths',
std_id: ['std3', 'std1']
},
{
name: 'Computer Science',
std_id: ['std3', 'std2']
},
{
name: 'Commerce',
std_id: ['std1']
},
]

let sortedArr = [];

for(let i = 0; i < students.length; i++) {
let stCourse = [];
for(let j = 0; j < courses.length; j++) {
if(courses[j].std_id.includes(students[i]._id)) {
stCourse.push(courses[j].name)
}
}
sortedArr.push({name: students[i].name, 'studen ID': students[i]._id, courses: stCourse})
}

console.log(sortedArr)

关于javascript - 有两个对象的数组,在这些数组中,如果 ID 相同,我想匹配 ID,我需要新数组,其中包含相同 ID 的组合信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58484985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com