Tengo una matriz de variables. Me gustaría obtener una cadena de todas las variables con su nombre de variable y el valor que representa. Esto es lo que tengo.
var date = '1/1/22'; var time = '5:00' var name = 'some name'; var number = '123-456-7890'; var arr = [date,time,name,number]Me gustaría convertirlo en una cadena tal vez así:
var text = ''; text += arr[0].toUpperCase() + ": " + arr[0] + "\n"; que haría una salida de text como esta en el cuerpo de un correo electrónico
date: 1/1/22 time: 5:00 name: some name number: 123-456-7890Esto no se puede hacer con una matriz porque los elementos de la matriz no tienen nombres. Los nombres de las variables no se mantienen al construir la matriz, solo sus valores .
Se puede hacer con un objeto, y luego puede usar Object.entries para iterar sobre el contenido del objeto y obtener tanto la clave como el valor de cada elemento:
var date = '1/1/22'; var time = '5:00' var name = 'some name'; var number = '123-456-7890'; var obj = { date, time, name, number }; for (var [key, value] of Object.entries(obj)) console.log(key + ": " + value) Una nota final: no se garantiza el orden de los artículos devueltos por Object.entries() .
Otra opción es colocar objetos con una sola propiedad nombrada en una matriz. De esta forma, se garantiza el orden de los elementos y los nombres de los elementos están disponibles mediante Object.keys():
var date = '1/1/22'; var time = '5:00' var name = 'some name'; var number = '123-456-7890'; var arr = [ { date }, { time }, { name }, { number } ]; for (var item of arr) { // We have knowledge that every object has only 1 property, get its name: var key = Object.keys(item)[0]; console.log(key + ": " + item[key]); }Creo que su mejor opción es usar una matriz bidimensional. Aquí hay un fragmento de código (lo copié de una MacBook, así que espero que tenga el formato correcto):
function getVarAndValArray() { var date = '1/1/22'; var time = '5:00' var name = 'some name'; var number = '123-456-7890'; //Create two-dimensional array let arr = []; arr[0] = []; //date arr[1] = []; //time arr[2] = []; //name arr[3] = []; //number //----------------------------------- //Insert variables names and values //Date arr[0][0] = 'date'; //variable arr[0][1] = '1/1/22'; //value //Time arr[1][0] = 'time'; //variable arr[1][1] = '5:00'; //value //Name arr[2][0] = 'name'; //variable arr[2][1] = 'some name'; //value //Number arr[3][0] = 'number'; //variable arr[3][1] = '123-456-7890'; //value //------------------------------------ return arr; } //Output the results var arr = getVarAndValArray(); var text = ''; text += arr[0][0].toUpperCase() + ": " + arr[0][1] + "\n"; text += arr[1][0].toUpperCase() + ": " + arr[1][1] + "\n"; text += arr[2][0].toUpperCase() + ": " + arr[2][1] + "\n"; text += arr[3][0].toUpperCase() + ": " + arr[3][1] + "\n"; alert(text);