Например, у меня есть два массива "StudentInfo"
[
{
"id": "1234",
"name": "A"
},
{
"id": "1134",
"name": "B"
},
{
"id": "2234",
"name": "C"
},
{
"id": "3234",
"name": "D"
}
]
и "Список хороших студентов"
[
"1234",
"1134"
]
Итак, как я могу добавить еще один атрибут о типе Student в StudentInfo, зависит от GoodStudentList, если у них есть свой идентификатор в хорошем списке, тогда их тип хороший, в противном случае их тип нормальный:
[
{
"id": "1234",
"name": "A",
"type": "Good"
},
{
"id": "1134",
"name": "B"
"type": "Good"
},
{
"id": "2234",
"name": "C"
"type": "Normal"
},
{
"id": "3234",
"name": "D",
"type": "Normal"
}
]
Извините, я знаю, что это может быть легко, но я действительно не могу понять, что такое сопоставление в JS qwq
Вы можете использовать forEach()
для циклического просмотра массива студентов и проверки, находится ли каждый идентификатор в хорошем списке с помощью includes()
. Затем добавьте правильное свойство в зависимости от результата, когда вы перебираете учеников:
let StudentInfo = [{"id": "1234","name": "A"},{"id": "1134","name": "B"},{"id": "2234","name": "C"},{"id": "3234","name": "D"} ]
let GoodStudentList = ["1234","1134"]
StudentInfo.forEach(student => {
student.type = GoodStudentList.includes(student.id) ? "Good" : "Normal"
})
console.info(StudentInfo)
Использование простых старых итераций:
let list = [
{
"id": "1234",
"name": "A"
},
{
"id": "1134",
"name": "B"
},
{
"id": "2234",
"name": "C"
},
{
"id": "3234",
"name": "D"
}
];
let good = [
"1234",
"1134"
];
for (let key in list){
for (let i of good){
if (i === list[key].id){
list[key].type = "Good";
break;
}
else list[key].type = "Neutral";
}
}
console.info(list);
Вы можете использовать метод карта для массива StudentInfo
и для каждого элемента проверить, существует ли идентификатор этого объекта в GoodStudentList
. Это может выглядеть примерно так:
StudentInfo = StudentInfo.map((student) => {
if (GoodStudentList.indexOf(student.id) >= 0) {
student.type = 'Good';
} else {
student.type = 'Normal';
}
})
Здесь вы проверяете, больше ли индекс идентификатора студента для каждого студента, чем 0 (это означает, что он существует в массиве). Если он не существует в массиве, он вернет -1 и, следовательно, не пройдет условие. Возвращается массив StudentInfo со всеми учащимися, измененными для включения свойства type.
перебрать информацию о студентах, добавить свойство типа со значением good для тех, чей идентификатор отображается в списке goodstudentlist, добавить значение normal для остальных..