#javascript #arrays #reactjs #regex #context-api
Вопрос:
В настоящее время в моем файле состояния задано некоторое начальное состояние
Отфильтрованное имя: null,(это то, куда идет отфильтрованное имя и так далее)
filteredTag: null, студенты: null, (отсюда фильтруются имя и тег)
РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ ДЛЯ ОТФИЛЬТРОВАННОГО ИМЕНИ РАБОЧИЙ
регистр FILTER_STUDENTS_BY_NAME:
возвращает {
…состояние,
отфильтрованное ИМЯ: состояние.студенты.фильтр(студент => {
//Remove white spaces
var newString = action.payload.replace(/s/g, '')
const regex = new RegExp(`${newString}`, 'gi')
const fullName = student amp;amp; `${student.firstName} ${student.lastName}`
return (student.firstName amp;amp; student.firstName.match(regex)) || (student.lastName amp;amp; student.lastName.match(regex))
|| (fullName.match(regex))
})
}
Теперь я хочу отфильтровать по тегам…теги-это массив в массиве учащихся.
МАССИВ УЧАЩИХСЯ
{
"id": 1,
"city": "some city",
"name" : "some name",
"colors" : [
"1": "blue",
"2" : "red"
],
"age": "some age"
"tags" : [
{
"id": 1,
"tag" : "tag1"
},
{
"id": 2,
"tag" : "tag2"
},
],
},
{
"id": 2,
"city": "some city",
"name" : "some name",
"colors" : [
"1": "green",
"2" : "yellow"
],
"age": "some age",
"tags" : [
{
"id": 1,
"tag" : "tag1"
},
{
"id": 2,
"tag" : "tag2"
},
],
}
]```
How i am doing the filtering for name is onChange, i take in the text input and check if it matches the first name or last name. But i cannot just do state.students.tags(because of the array thingy). But now i want to match the tags which are in an array.How do i go about it? And mind you, some students have multiple tags.