Así que tengo un menú de selección que le permite al usuario seleccionar múltiples opciones. las opciones seleccionadas corresponden a actorModel . Entonces tengo una matriz de objetos y deseo filtrarla de acuerdo con las opciones seleccionadas. Si el usuario seleccionó la opción A y B, devolverá dos objetos de actorDocs . El que tiene un valor de etiqueta 'A' y el que tiene un valor de etiqueta 'B'. Si no se selecciona ninguna opción ( actorModel es nulo), devolverá todos los objetos de actorDocs .
El problema que encuentro en este código es que solo funciona si el usuario selecciona una opción. Si el usuario selecciona más de uno, creo que está tratando de ubicar un objeto que tiene varias etiquetas en lugar de varios objetos con cada etiqueta.
Cualquier ayuda es más que bienvenida
const actorModel = ref({ 0:'label1', 1:'label2', 3:'label3'}) const actorDocs = ref([{'label':'label1'},{'label':'label2'},{'label':'label3'},{'label':'label4'}]) const actorListTest2 = computed(() => { if (actorModel.value == null){var ttt = actorDocs.value} else { var ttt = actorDocs.value.filter(obj => { return ( (!actorModel.value.length || obj.label.includes(actorModel.value) ) ) })} lenActordata.value = ttt.length return ttt });Prueba como el siguiente fragmento:
const actorModel = {0:'label1', 1:'label3'} const actorDocs = [{'label':'label1'}, {'label':'label2'}, {'label':'label3'}, {'label':'label4'}] const actorListTest2 = () => { if (actorModel == null){ return actorDocs } else { return actorDocs.filter(obj => [...Object.values(actorModel)].includes(obj.label)) } }; console.log(actorListTest2())