En mi aplicación, estoy tratando de comparar los identificadores de especificación y las especificaciones seleccionadas. A partir de ahora, codifiqué la identificación de especificaciones seleccionadas en 0. Estoy tratando de recorrer la matriz de especificaciones seleccionadas y luego verificar si la identificación coincide.
selectedSpecifications is an array specification is an objectNecesito ayuda para lograr esta funcionalidad.
let val = this.selectedSpecifications.map(specification => { if (specification.id == this.selectedSpecifications[0].id) { ----> How can I remove hardcoded value `0` and loop over selectedSpecifications array return specification.value ; } else{ }}El principal punto de aclaración es la sintaxis de map y find es arr.map(eachElementInArray => doSomethingWithElement) , pero parece que está tratando de hacer referencia a la especificación como un argumento (al revés). En cambio, quieres algo como esto:
let val = this.selectedSpecifications.find(selectedSpec => { if (selectedSpec.id === specification.id) { return selectedSpec.value; } Si solo hay 1 o ninguna especificación coincidente, usaría Array.prototype.find() . De lo contrario map() tiene sentido si hay varias especificaciones coincidentes.
Como nota final, preferiría usar el operador de igualdad estricta ( === ) aquí en caso de que las identificaciones guardadas tengan diferentes tipos, lo que podría ayudarlo a detectar un error.