estoy tratando de empujar
data.push({"country": "IN"});como nueva identificación y valor a una cadena json. pero da el siguiente error
Uncaught TypeError: data.push is not a function data{"name":"ananta","age":"15"}Avance Gracias por su respuesta
Para usar la función de inserción de un Array, su var debe ser un Array.
Cambie data{"name":"ananta","age":"15"} a los siguientes:
var data = [ { "name": "ananta", "age": "15", "country": "Atlanta" } ]; data.push({"name": "Tony Montana", "age": "99"}); data.push({"country": "IN"}); ..Los elementos de matriz que contienen serán de tipo Objeto y puede hacer lo siguiente:
var text = "You are " + data[0]->age + " old and come from " + data[0]->country;
Aviso: Trate de ser consistente. En mi ejemplo, una matriz contenía el name y la age las propiedades del objeto, mientras que la otra solo contiene el country . Si itero esto con for o forEach , entonces no siempre puedo verificar una propiedad, porque mi ejemplo contiene elementos que cambian.
Perfecto sería: data.push({ "name": "Max", "age": "5", "country": "Anywhere" } );
Entonces puede iterar y siempre puede obtener las propiedades, incluso si están vacías, nulas o indefinidas.
editar
Cosas interesantes para saber:
var array = new Array();es parecido a:
var array = [];También:
var object = new Object();es parecido a:
var object = {};También puedes combinarlos:
var objectArray = [{}, {}, {}];Su variable data contiene un objeto, no una matriz, y los objetos no tienen la función de push como indica el error. Para hacer lo que necesitas puedes hacer esto:
data.country = 'IN';O
data['country'] = 'IN';También asegúrese de que el nombre de la variable no sea algún tipo de palabra clave de idioma. Por ejemplo, lo siguiente produce el mismo tipo de error:
var history = []; history.push("what a mess");reemplazándolo por:
var history123 = []; history123.push("pray for a better language");funciona como se esperaba.