PDA

Просмотр полной версии : Правильный синтаксис многомерного массива


Lego
13.07.2004, 12:06
Не могу сообразить как правильно описать подобную структуру:
function TRecordSet(fields)
{
this.fields = fields;
this.fieldCount = this.fields.length;
this.recordCount = 0;
this.records = [];
}

TRecordSet.prototype.AddRecord = function(records)
{
for(var i = 0; i < this.fieldCount; i++)
{
this.records[this.recordCount][this.fields[i] ] = records[i];
}
this.recordCount++;
}

rs = new TRecordSet(["name", "city"])
rs.AddRecord("Oleg","Dnepropetrovsk");

trace(rs[0].name);
trace(rs[0].city);

На

trace(rs[0].name);
trace(rs[0].city);

получаю

undefined
undefined

А как бы мне вот так вот, чтобы все-таки

trace(rs[0].name);
trace(rs[0].city);

и получалось

Oleg
Dnepropetrovsk


Большое спасибо.

Lego
13.07.2004, 13:43
Только вместо

rs.AddRecord("Oleg","Dnepropetrovsk");

пишу

rs.AddRecord(["Oleg","Dnepropetrovsk"]);

DeliMIter
13.07.2004, 14:06
class TRecordSet extends Array {

private var Fields:Array;

function TRecordSet(heap) {
Fields = heap;
}

public function addRecord(heap) {
var newitem = new Object();
for (var i=0; i<Fields.length; i++) {
newitem[Fields[i]] = heap[i];
}
push(newitem);
}
}import TRecordSet;

var RS = new TRecordSet(["name", "city"]);
RS.addRecord(["Suxx", "Suxxberg"]);

trace(RS[0].name);
trace(RS[0].city);

Lego
13.07.2004, 14:30
Я так понимаю это синтаксис семерки?
Я им не сильно владею.

Я должен создать отдельный файл TRecordSet.as, а в основном мувике прописать

import TRecordSet;

var RS = new TRecordSet(["name", "city"]);
RS.addRecord(["Suxx", "Suxxberg"]);

trace(RS[0].name);
trace(RS[0].city);

???

З.Ы. Насколько стоит переходить на новый синтаксис (тут с предыдущим едва разобрался)?

Lego
13.07.2004, 15:04
Огромное спасибо. Разобрался

Lego
13.07.2004, 15:18
Сделал так, дабы сохранить стиль синтаксиса :)
TRecordSet.prototype = new Array();

function TRecordSet(fields)
{
this.fields = fields;
}

TRecordSet.prototype.AddRecord = function(heap)
{
var records = new Object();
for(var i = 0; i < this.fields.length; i++)
{
records[this.fields[i]] = heap[i];
trace(records[this.fields[i]]);
}
this.push(records);
}

rs = new TRecordSet(["name", "city"])
rs.AddRecord(["Oleg","Dnepropetrovsk"]);

trace(rs[0].name);
trace(rs[0].city);

Еще раз спасибо.