¿Hay una buena manera de lograr este Javascript?
Básicamente, quiero algo donde los valores de los campos se concatenen en un solo campo con una coma entre los valores. Figura algo simple como esto
var un
var b
varc
valor de todos los campos = a + ","b + ","c
Mi problema es que necesito crear una condición para que se coloquen en todos los valores de campo. Entonces, si var a = verdadero, var b = falso y var c = verdadero, entonces allfieldvalue = a +","c. Tenga en cuenta que podría haber 20 var diferentes. Esperemos que eso tenga sentido.
Póngalos en una matriz, luego use .filter() y .join() para concatenar los valores verdaderos.
let a = true; let b = false; let c = true; let all_vars = [a, b, c]; let result = all_vars.filter(e => e).join(','); console.log(result);En caso de que el objetivo sea una cadena que contenga los nombres de las variables que son verdaderas, use este enfoque:
Convierta las variables en accesorios de objetos...
var a = true; var b = false; var c = true; let object = { a, b, c }; // produces { a: true, b: false, c: true }Filtre ese objeto para excluir valores falsos:
object = Object.fromEntries( Object.entries(object).filter(([k,v]) => v) // produces { a: true, c: true } )Conectar las claves:
let string = Object.keys(object).join(','); // produces "a,c"Manifestación
var a = true; var b = false; var c = true; let object = { a, b, c }; object = Object.fromEntries( Object.entries(object).filter(([k,v]) => v) ) let string = Object.keys(object).join(','); console.log(string)Primero, depende de lo que haya en la variable, si desea un valor booleano y mostrarlo, podría hacer algo como esto:
function myFunc(...variables) { console.log(variables.filter(v => v != false).join(", ")); } let a = true; let b = false; let c = true console.log(myFunc(a,b,c));