Estoy tratando de insertar un objeto dentro de otro objeto y con lo que intenté no tuve éxito en ninguno de los, digamos que quiero insertar un objeto dentro de un objeto, estas son las formas en que lo intenté:
var ob = { user1: {name: 'chris'} }; 1: ob['user2']['name'] = 'Luana'; //error 2: var obA = ob['user2']; obA['name'] = 'Luana'; //error 3: ob['user2'] = ['name'] = 'Luana'; //errorEstas son las formas en que lo intenté, pero como no tengo éxito, ¿cómo puedo insertar otras propiedades que no sean las siguientes?
obA['user2'] = {name: 'Luana'}; // for me this is not what i'm looking for
Mi deseo es hacer el siguiente código:
var gentleman = {}; var test = 0; onclick = () => { test = 1; gentleman ['names'] [test] = 'I am a gentleman' test console.log (gentleman); }Devuelve este resultado:
gentleman = { names: { 1: 'Im gentleman 1', 2: 'Im gentleman 2', 3: 'Im gentleman 3', ... } } Tenga en cuenta que lo que estoy haciendo es crear un piano y cada tecla precedida. Creo un nuevo audio con audio new Audio y paso la URL de esta tecla, hasta ahora todo bien, el problema necesita algo de lógica para verificar si el audio ya estaba. llamado, la lógica que pensé fue la siguiente: Cuando el usuario hace clic en la clave, inserto en un objeto notes_ la propiedad con la clave de la clave C or D ... es el valor del new Audio audio, cada tecla que inserto en este mismo objeto notes_ que está dentro de otro objeto songs_ . Como vi en varias respuestas, al agregar como se menciona en ellas, se restablecen los valores que están en el objeto, pero eso no es lo que quiero;
Échale un vistazo
var songs_ = { music1 = 'name', music2 = 'name', notes_ = {} };Cada tecla que presione, agregaré una propiedad a notes_ como esta:
var key_ = new audio(urlNote); note 1 C = key_; notes_ = { C = key_, //(here contains the audio of the note itself C) C_ = key_, D = key_, ... } // the content here should not be changed, just addedActualizar después de la pregunta actualizada
var gentleman = { names:{}}; var test = 0; document.getElementById("btn").addEventListener("click", function() { test++ gentleman ['names'] [test] = `I am a gentleman ${test}` console.log (gentleman); }) <button id="btn" type="button">Click</button>Respuesta antigua:
la clave que estoy tratando de ingresar es una variable, por ejemplo:
var key = 'user'; var keyI = 'name'; ob[key][keyI] = 'name'
¿Quizás quisiste decir esto?
var obj = { user1: { name: 'chris' } }; console.log(obj) let key = 'somekey' let key1 = 'someotherkey' let val = 'somevalue' obj[key] = {[key1] : val} console.log(obj)Hay otra manera regular.
Podrías intentar esto:
var ob = { user1: {name: 'chris'} }; var ob2 = { user2: {name: 'Luana'} }; var result = Object.assign(ob, ob2); console.log(result);No es posible de esa manera.
var ob = { user1: {name: 'chris'} }; //If you wanna do this, it will show you an error since 'user2' does not exists on ob: ob['user2']['name'] = 'Luana' // So yo wanna create it first: ob['user2'] = {name: 'chris'};