J'essaie de pousser
data.Push({"country": "IN"});
comme nouvel identifiant et valeur pour une chaîne json. mais cela donne l'erreur suivante
Uncaught TypeError: data.Push is not a function
data{"name":"ananta","age":"15"}
Advance Merci pour votre réponse
Pour utiliser la fonction Push d'un tableau, votre var doit être un tableau.
Changez data{"name":"ananta","age":"15"}
en suivant:
var data = [
{
"name": "ananta",
"age": "15",
"country": "Atlanta"
}
];
data.Push({"name": "Tony Montana", "age": "99"});
data.Push({"country": "IN"});
..
Les éléments de tableau contenant seront typeof et vous pouvez effectuer les opérations suivantes:
var text = "You are " + data[0]->age + " old and come from " + data[0]->country;
Remarque: essayez d'être cohérent. Dans mon exemple, un tableau contenait les propriétés d'objet name
et age
, tandis que l'autre ne contenait que country
. Si j'itère ceci avec for
ou forEach
, je ne peux pas toujours rechercher une propriété, car mon exemple contient des éléments qui changent.
Parfait serait: data.Push({ "name": "Max", "age": "5", "country": "Anywhere" } );
Ainsi, vous pouvez itérer et toujours obtenir les propriétés, même si elles sont vides, nulles ou indéfinies.
modifier
Des trucs cool à savoir:
var array = new Array();
est similaire à:
var array = [];
Également:
var object = new Object();
est similaire à:
var object = {};
Vous pouvez aussi les combiner:
var objectArray = [{}, {}, {}];
Votre variable data
contient un objet, pas un tableau, et les objets n'ont pas la fonction Push
en tant qu'états d'erreur. Pour faire ce dont vous avez besoin, vous pouvez le faire:
data.country = 'IN';
Ou
data['country'] = 'IN';
vous pouvez utiliser la méthode Push uniquement si l'objet est un tableau:
var data = new Array();
data.Push({"country": "IN"}).
OR
data['country'] = "IN"
si c'est juste un objet que vous pouvez utiliser
data.country = "IN";
Assurez-vous également que le nom de la variable ne correspond pas à un mot-clé de langage . Par exemple, ce qui suit génère le même type d'erreur:
var history = [];
history.Push("what a mess");
en le remplaçant par:
var history123 = [];
history123.Push("pray for a better language");
fonctionne comme prévu.
Essayez ce code $ scope.DSRListGrid.data = data; celui-ci pour les données source
for (var prop in data[0]) {
if (data[0].hasOwnProperty(prop)) {
$scope.ListColumns.Push(
{
"name": prop,
"field": prop,
"width": 150,
"headerCellClass": 'font-12'
}
);
}
}
console.log($scope.ListColumns);
assurez-vous que Poussez dans un tableau uniquement et si leur erreur est semblable à Uncaught TypeError: data.Push n’est pas une fonction ** puis vérifiez le type de data vous pouvez le faire en consol.log (data) espérons que cela vous aidera