Estoy creando el booleano hasMultipleCoverageLines para determinar si existen diferentes valores de nombre de línea de coverageLineName en los elementos dentro de líneas de coverageLines . ¿Hay alguna manera de simplificar esta expresión para que no tenga que verificar explícitamente cada nombre de línea de coverageLineName ?
this.hasMultipleCoverageLines = !this.coverageLines.every((x) => x.coverageLineName === "Medical") && !this.coverageLines.every((x) => x.coverageLineName === "Dental") && !this.coverageLines.every((x) => x.coverageLineName === "Vision") && !this.coverageLines.every((x) => x.coverageLineName === "Life");Un conjunto hará cumplir la singularidad. Coloque los nombres en un conjunto y vea si el conteo es > 1.
let names = this.coverageLines.map(x => x.coverageLineName); let set = new Set(names); this.hasMultipleCoverageLines = set.size > 1; Con esto ["Dental", "Dental", "Dental"] producirá un juego de tamaño 1, pero ["Dental", "Vision", "Dental"] producirá un juego de tamaño 2, y así sucesivamente. .
Simplemente puede verificar si alguna línea es diferente a la anterior.
const hasMultipleCoverageLines = (lines) => { return lines.some((line, i) => { return i > 0 && line.coverageLineName !== lines[i - 1].coverageLineName; }); };