Ich denke nicht, dass das schwierig ist, ich kann einfach nicht den besten Weg finden, es zu tun. Diese Funktion erstellt ein Array aus einer Gruppe von Kontrollkästchen. Ich möchte dann das Array aufteilen und ein Array von Objekten erstellen, da jedes Objekt entsprechende Daten haben kann. Wie filtere ich bestehende rolesInterestedIn.roleType
heraus.Herausfiltern von bestehenden Objekten in einem Array von Objekten
handleTypeOfWorkSelection(event) {
const newSelection = event.target.value;
let newSelectionArray;
if(this.state.typeOfWork.indexOf(newSelection) > -1) {
newSelectionArray = this.state.typeOfWork.filter(s => s !== newSelection)
} else {
newSelectionArray = [...this.state.typeOfWork, newSelection];
}
this.setState({ typeOfWork: newSelectionArray }, function() {
this.state.typeOfWork.map((type) => {
this.setState({
rolesInterestedIn: this.state.rolesInterestedIn.concat([
{
roleType: type,
}
])
}, function() {
console.log(this.state.rolesInterestedIn);
});
})
});
}
UDPATE
rolesInterestedIn: [
{
roleType: '',
experienceYears: ''
}
],
Was ist das Problem mit diesem Code? Funktioniert es nicht wie erwartet, ist es besser, wenn Sie Beispieldaten bereitstellen, was Sie erwarten und was das Ergebnis dieser Methode ist. –
'rolesInteressedIn' erstellt jedes Mal neue Objekte, wenn ich ein Kontrollkästchen an- oder abwähle. Ich möchte nicht, dass es nur "concat" anzeigt. Ich möchte, dass es nach Duplikaten sucht und dann bei Bedarf aktualisiert wird, indem die Auswahl hinzugefügt oder entfernt wird. – bp123