javascript - objetos - Convertir las propiedades y los valores del objeto en una matriz de pares de valores clave
recorrer array de objetos javascript (6)
Soy bastante nuevo en JavaScript y no estoy seguro de que esto sea posible, pero básicamente me gustaría tomar un objeto y convertirlo en una matriz de cadenas en el formato; array[0] = ''prop1=value1''
El razonamiento detrás de esto es que un usuario ingresa una lista de pares k = v en un formulario, luego se escribe como un objeto dentro de un json blob. Pasar del valor clave csl al objeto json era simple, ahora necesito volver por el otro lado (recibí el JSON a través de una llamada ajax y quiero rellenar un formulario en blanco). ¿Es esto posible en JavaScript? Si no, por favor ofrezca una solución razonable.
Código de muestra;
Objeto en depurador;
Object
private_key: "private-key"
public_key: "public-key"
Necesito convertir eso a
"private_key=private-key,public_key=public-key"
Básicamente necesito algo como esto (pseudo código)
var outputString = '''';
foreach (prop in obj)
{
outputString = outputString + prop.tostring() + ''='' + prop.value + '','';
}
En ES6 puede usar Object.entries({object1:1,object2:2});
. El resultado es: [["object1",1],["object2",2]]
Probablemente estés buscando algo en la línea de
var obj = {value1: ''prop1'', value2: ''prop2'', value3: ''prop3''};
var arr = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
arr.push(key + ''='' + obj[key]);
}
};
var result = arr.join('','');
alert(result);
Tenga en cuenta que funcionará bien si sus valores son cadenas; Si son objetos complejos, necesitarás agregar más código.
O simplemente puede usar jQuery.param , que hace lo que quiere, incluso para tipos complejos (aunque usa el carácter &
como separador, en lugar de la coma).
obj = {
private_key: "private-key",
public_key: "public-key"
}
str = JSON.stringify(obj).replace(/[{}]/g, '''').replace(/"/g, '''').replace(/:/g, ''='');
console.log("Using JSON.stringify:/n", str);
str = Object.keys(obj).map((key) => `${key}=${obj[key]}`).join('','')
console.log("Using ES6 keys/map:/n", str);
str = jQuery.param(obj).replace(/&/g,'','');
console.log("Using jQuery.param:/n", str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
var object = {
private_key: "private-key",
public_key: "public-key"
};
var array = [];
for (var prop in object)
array.push(prop + "=" + object[prop]);
return array.join('',''); // "private_key=private-key,public_key=public-key"
Tenga en cuenta que el pedido no está garantizado.
var array = [];
for (k in o)
{
if (o.hasOwnProperty(k))
{
array.push(k+"="+o[k]);
}
}
A continuación, puede join
la matriz para su cadena final.