Ich versuche zu schieben
data.Push({"country": "IN"});
als neue ID und Wert für eine Json-Zeichenfolge. aber es gibt den folgenden Fehler
Uncaught TypeError: data.Push is not a function
data{"name":"ananta","age":"15"}
Vielen Dank für Ihre Antwort
Um die Push-Funktion eines Arrays zu verwenden, muss Ihr var ein Array sein.
Ändern Sie data{"name":"ananta","age":"15"}
in Folgendes:
var data = [
{
"name": "ananta",
"age": "15",
"country": "Atlanta"
}
];
data.Push({"name": "Tony Montana", "age": "99"});
data.Push({"country": "IN"});
..
Die enthaltenen Array-Elemente sind vom Typ object und Sie können Folgendes tun:
var text = "You are " + data[0]->age + " old and come from " + data[0]->country;
Hinweis: Versuchen Sie, konsistent zu sein. In meinem Beispiel enthielt ein Array Objekteigenschaften name
und age
, während das andere nur country
enthielt. Wenn ich dies mit for
oder forEach
durchführe, kann ich nicht immer nach einer Eigenschaft suchen, da mein Beispiel Elemente enthält, die sich ändern.
Perfekt wäre: data.Push({ "name": "Max", "age": "5", "country": "Anywhere" } );
Sie können also iterieren und die Eigenschaften immer abrufen, auch wenn sie leer, null oder undefiniert sind.
bearbeiten
Cooles Zeug zu wissen:
var array = new Array();
ist ähnlich wie:
var array = [];
Ebenfalls:
var object = new Object();
ist ähnlich wie:
var object = {};
Sie können sie auch kombinieren:
var objectArray = [{}, {}, {}];
Ihre Variable data
enthält ein Objekt, kein Array, und Objekte haben nicht die Funktion Push
als Fehlerstatus. Um das zu tun, was Sie brauchen, können Sie Folgendes tun:
data.country = 'IN';
Oder
data['country'] = 'IN';
sie können die Push-Methode nur verwenden, wenn das Objekt ein Array ist:
var data = new Array();
data.Push({"country": "IN"}).
OR
data['country'] = "IN"
wenn es nur ein Objekt ist, das Sie verwenden können
data.country = "IN";
Stellen Sie außerdem sicher, dass der Name der Variablen keine Art von Sprachschlüsselwort ist .. __ Zum Beispiel erzeugt der folgende Fehler den gleichen Fehlertyp:
var history = [];
history.Push("what a mess");
ersetze es für:
var history123 = [];
history123.Push("pray for a better language");
funktioniert wie erwartet.
Ich denke du hast es eingestellt
var data = [];
aber nach einiger Zeit schaffst du es
data = 'some things';
dann funktioniert data.Push('')
nicht.
Probieren Sie diesen Code aus $ scope.DSRListGrid.data = data; dieses für Quelldaten
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);
stellen Sie sicher, dass Sie Push nur in ein Array und wenn es sich um einen Fehler wie Uncught TypeError handelt: data.Push ist keine Funktion ** Überprüfen Sie dann den Typ der data . Sie können dies mit consol.log (Daten) machen. hoffe, das hilft