Здравствуйте, Andir, Вы писали:
A>По умолчанию все объекты в JScript являются Ассоциативными массивами.
Ни по умолчанию, ни по желанию объекты JScript массивами не являются. У них (у объектов) совсем другая природа.
Кстати именно благодаря этой "природе" в JScript запросто реализуется "множественное" наследование (на самом деле частный случай подмешиваний):
function Base(a) {
this.a = a;
}
function Next(b) {
this.b = b;
}
function Some(a, b) {
Base.call(this, a);
Next.call(this, b);
}
где new Some(1,2) имеет и a от Base и b от Next
A>var obj = new Object();
Проще: bar obj = {};
A>// поиск и удаление только своими силами ...
Здравствуйте, Odi$$ey, Вы писали:
OE>Как в JScript сделать что-то типа массива с индексом-строкой, добавить там, поискать по этой строке, удалить элемент с нужным индексом?
По умолчанию все объекты в JScript являются Ассоциативными массивами.
var obj = new Object();
obj["test1"] = 1;
obj["test2"] = 2;
for(var index in obj)
{
var value = obj[index];
// Some actions
}
// поиск и удаление только своими силами ...
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, Andir, Вы писали:
A>>// поиск и удаление только своими силами ...
OE>а как удалить то, например свойство "test1"?
Никак в общем-то ...
Можно присвоить этому элементу null и он не будет отличим от отсутствующих ключей, но будет присутствовать в объекте.
Это не настоящий ассоциативный массив, он только выглядит так
Ещё существует ActiveX стандартный
var hash = new ActiveXObject("Scripting.Dictionary");
Здравствуйте, Odi$$ey, Вы писали:
OE>Как в JScript сделать что-то типа массива с индексом-строкой
var foo = new Object();
//или
var foo = {};
OE>, добавить там,
foo['bar'] = any_object;
OE>поискать по этой строке
1)
if('bar' in foo)
2)
if(typeof(foo['bar'] != 'undefined'))
3)
for(var o in foo)
{
if(o == 'bar') return foo[o];
}
var some = foo['bar'];
//или
some = foo.bar;
Здравствуйте, Dax, Вы писали:
A>>По умолчанию все объекты в JScript являются Ассоциативными массивами.
Dax>Ни по умолчанию, ни по желанию объекты JScript массивами не являются. У них (у объектов) совсем другая природа. Dax>Кстати именно благодаря этой "природе" в JScript запросто реализуется "множественное" наследование (на самом деле частный случай подмешиваний):
Я хотел сказать, выглядят как ассоциативные массивы.
Насчёт удаления, поиска и т.д. я поторопился Совсем из головы вылетело, что в JScript это тоже есть ... А ведь про JavaScript сказал бы даже не задумываясь. Пожалуй заработал я тут большой минус
Здравствуйте, Dax, Вы писали:
OE>>>а как удалить то, например свойство "test1"? A>>Никак в общем-то ...
Dax>В общем-то как: Dax>delete enclosing_object.test1