Aloha ;)
var ary = {
t1:"", t2:"", t3:"", t4:""
}
var obj = {};
obj['t5'] : "";
obj['t6'] : "";
obj['t7'] : "";
obj['t8'] : "";ary.push(obj);
(Kleine Anmerkung zwischendurch: Syntax wie `obj['t5'] : "";`{:.language-javascript} ist natürlich falsch, das muss wenn, dann `obj['t5'] = "";`{:.language-javascript} heißen... Die Notation mit Doppelpunkt kommt nur innerhalb expliziter Objektdefinitionen vor...)
In Ergänzung zu mrjerks vollkommen richtigem Einwand: Arrays sind in JavaScript nie mit sprechenden, sondern nur mit numerischen Bezeichnern möglich. Wenn du eine Funktionalität ähnlich wie push für generische Objekte brauchst, musst du's dir in etwa so selber bauen:
~~~javascript
function push_obj(obj,add) {
for (var x in add) {
obj[x] = add[x];
}
}
Wenn du mehrere solcher Objekte brauchst und/oder noch mehr Array-Eigenschaften nachbilden musst/willst, kannst du auch überlegen, das formschön an einen Konstruktor zu delegieren.
function ArrayObj (initobj) {
this.push = function (add) {
for (var x in add) {
// Wir wollen ja nicht, dass unsere Funktion in der
// Lage ist, sich selbst zu überschreiben
if (typeof this[x] != 'function') {
this[x] = add[x];
} else {
console.log('Error: ArrayObj.push tried to overwrite member-function ArrayObj.'+x+' with value '+add[x]+'.');
}
}
};
this.push(initobj);
}
ary = new ArrayObj({t1:"",t2:"",t3:"",t4:""});
var obj = {};
obj['t5'] = "";
obj['t6'] = "";
obj['t7'] = "";
obj['t8'] = "";
ary.push(obj);
Code ist ausnahmsweise sogar getestet ;) Vorteil dieser Methode: Die Benutzung durch Member-Funktionen ist intuitiver und stärker an den Sprachstandard angelehnt als das Benutzen einer globalen Funktion. Nachteil: Manche Bezeichner (nämlich die, die schon von Memberfunktionen genutzt werden) sind nicht belegbar.
Grüße,
RIDER
--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[