recorrer objetos objeto lista eliminar elemento ejemplos crear buscar array agregar javascript properties object-literal

javascript - objetos - crear objeto usando variables para nombre de propiedad



recorrer array de objetos javascript (4)

Si, en JavaScript, desea usar una variable para un nombre de propiedad, primero debe crear el objeto y luego asignar la propiedad usando la notación de corchetes .

var foo = "bar"; var ob = {}; ob[foo] = "something"; // === ob.bar = "something"

Si quisieras crear JSON programáticamente, tendrías que serializar el objeto a una cadena que se ajustara al formato JSON. por ejemplo, con el método stringify de la biblioteca JavaScript JSON en json.org

Esta pregunta ya tiene una respuesta aquí:

¿Es posible usar nombres de variables en propiedades de objetos literales para la creación de objetos?

Ejemplo

function createJSON (propertyName){ return { propertyName : "Value"}; } var myObject = createJSON("myProperty"); console.log(myObject.popertyName); // prints "value" console.log(myObject.myProperty); // Does not exist


Puedes hacer esto:

var myObject = {}; CreateProp("myProperty","MyValue"); function CreateProp(propertyName, propertyValue) { myObject[propertyName] = propertyValue; alert(myObject[propertyName]); // prints "MyValue" };

Sin embargo, prefiero esta sintaxis:

function jsonObject() { }; var myNoteObject = new jsonObject(); function SaveJsonObject() { myNoteObject.Control = new jsonObject(); myNoteObject.Control.Field1= "Fred"; myNoteObject.Control.Field2= "Wilma"; myNoteObject.Control.Field3= "Flintstone"; myNoteObject.Control.Id= "1234"; myNoteObject.Other= new jsonObject(); myNoteObject.Other.One="myone"; };

Entonces puedes usar lo siguiente:

SaveJsonObject(); var myNoteJSON = JSON.stringify(myNoteObject);

NOTA: Esto hace uso de json2.js desde aquí: http://www.json.org/js.html


Una cosa que puede ser adecuada (ahora que la funcionalidad JSON es común para los navegadores más nuevos, y json2.js es una alternativa perfectamente válida), es construir una cadena JSON y luego analizarla.

function func(prop, val) { var jsonStr = ''{"''+prop+''":''+val+''}''; return JSON.parse(jsonStr); } var testa = func("init", 1); console.log(testa.init);//1

Solo tenga en cuenta que los nombres de propiedad JSON deben estar entre comillas dobles.


ES6 introduce nombres de propiedades computados, que le permiten hacer

function CreateJSON (propertyName){ var myObject = { [propertyName] : "Value"}; }

Nota El soporte del navegador actualmente es insignificante.