Cómo establecer una key de matriz JSON en array.push en JavaScript

Estoy creando un código JS, donde necesito establecer una variable como key en una matriz JSON con Javascript array.push() :

 var test = 'dd'+questNumb; window.voiceTestJSON.push({test:{"title":""}, "content":{"date":""}}); 

Donde questNumb es otra variable. Al hacer ese código, la parte en la que escribo la variable de test simplemente se convierte en la key "test" , por lo que no tengo idea de llevar esto a wok. ¿Como puede ser? ¡Gracias!

4 Solutions collect form web for “Cómo establecer una key de matriz JSON en array.push en JavaScript”

Si quiere variables como keys, necesita corchetes:

 var object = {}; object['dd'+questNumb] = {"title":""}; object["content"] = {"date":""}; //Or object.content, but I used brackets for consistency window.voiceTestJSON.push(object); 

Deberías hacer algo como esto:

 var test = "dd" + questNumb, obj = {content: {date: ""}}; // Add the attribute under the key specified by the 'test' var obj[test] = {title: ""}; // Put into the Array window.voiceTestJSON.push(obj); 

(En primer lugar, no tiene una matriz JSON, tiene un object JavaScript. JSON es una representación de cadena de datos con una syntax que se parece a la syntax literal de object de JavaScript).

Lamentablemente, cuando utiliza la syntax literal del object de JavaScript para crear un object, no puede usar variables para establecer nombres de propiedad dynamics. Primero debe crear el object y luego agregar las properties usando la syntax obj[propName] :

 var test = "dd" + questNumb, myObj = { "content" : {"date":""} }; myObj[test] = {"title" : ""}; window.voiceTestJSON.push(myObj); 
 {test:{"title":""}, "content":{"date":""}} 

este es un object JS. Entonces estás empujando un object en la matriz voiceTestJSON.

A diferencia de JSON, los nombres de las properties del object JS se pueden escribir con o sin comillas.

Lo que quieres hacer se puede lograr así:

 var test = 'dd'+questNumb; var newObject = {"content":{"date":""}}; //this part does not need a variable property name newObject[test] = {"title":""}; 

De esta forma está configurando la propiedad con el nombre que figura en la testing para {"title": ""}.

  • array nested javascript
  • Cómo agregar múltiples objects a una matriz
  • cómo hacer un "push plano" en javascript?
  • Presione array en array en Javascript (jQuery)
  • JavaScript: evita la inserción de cierto elemento en una matriz si la condición es verdadera
  • ¿Declarar una matriz bidimensional vacía en Javascript?
  • Empujando valor en una matriz multidimensional
  • ¿Debería haber solo un object EventSource por aplicación?
  • Empujando el valor de Var en una matriz
  • Servidor de empuje: cometa vs simio?
  • jquery comprobar si existen json var
  • Javascript - pasa objects por reference
  • ¿Cómo crear dos matrices en el mismo ciclo con CoffeeScript?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.