Re[2]: JScript - что-то типа map в С++
От: Dax  
Дата: 15.02.05 21:36
Оценка: 27 (2)
Здравствуйте, 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>// поиск и удаление только своими силами ...


Силы для поиска и удаления имеют место в JScript:

"Поиск"

if('that name' in that_object)

Удаление

delete that_object.that_name
... << RSDN@Home 1.1.4 >>
Re: JScript - что-то типа map в С++
От: Andir Россия
Дата: 14.02.05 04:21
Оценка: 15 (2)
Здравствуйте, 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
}

// поиск и удаление только своими силами ...


С Уважением, Andir!
using(RSDN@Home 1.1.4 beta 3){/* Работаем! */}
Re[3]: JScript - что-то типа map в С++
От: Andir Россия
Дата: 14.02.05 04:50
Оценка: 18 (1)
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, Andir, Вы писали:


A>>// поиск и удаление только своими силами ...


OE>а как удалить то, например свойство "test1"?


Никак в общем-то ...
Можно присвоить этому элементу null и он не будет отличим от отсутствующих ключей, но будет присутствовать в объекте.
Это не настоящий ассоциативный массив, он только выглядит так

Ещё существует ActiveX стандартный
var hash = new ActiveXObject("Scripting.Dictionary");


С Уважением, Andir!
JScript - что-то типа map в С++
От: Dax  
Дата: 14.02.05 11:15
Оценка: 16 (1)
#Имя: FAQ.wscript.object.properties
Здравствуйте, 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;


OE>, удалить элемент с нужным индексом?


delete foo.bar
... << RSDN@Home 1.1.4 >>
wscript jscript
JScript - что-то типа map в С++
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 13.02.05 12:36
Оценка:
Как в JScript сделать что-то типа массива с индексом-строкой, добавить там, поискать по этой строке, удалить элемент с нужным индексом?
Re[2]: JScript - что-то типа map в С++
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 14.02.05 04:28
Оценка:
Здравствуйте, Andir, Вы писали:

A>// поиск и удаление только своими силами ...


а как удалить то, например свойство "test1"?
Re[4]: JScript - что-то типа map в С++
От: Dax  
Дата: 15.02.05 21:36
Оценка:
Здравствуйте, Andir, Вы писали:


OE>>а как удалить то, например свойство "test1"?


A>Никак в общем-то ...


В общем-то как:

delete enclosing_object.test1

A>Можно присвоить этому элементу null и он не будет отличим от отсутствующих ключей, но будет присутствовать в объекте.


будет отличим, это не ключ, но свойство (атрибут) объекта. Несуществующие свойства легко проверяются оператором in:

if('test1' in your_object)


A>Это не настоящий ассоциативный массив, он только выглядит так


Согласен, но только это совсем не массив. Это самый, что ни на есть обычный объект.
... << RSDN@Home 1.1.4 >>
Re[3]: JScript - что-то типа map в С++
От: Andir Россия
Дата: 15.02.05 23:17
Оценка:
Здравствуйте, Dax, Вы писали:

A>>По умолчанию все объекты в JScript являются Ассоциативными массивами.


Dax>Ни по умолчанию, ни по желанию объекты JScript массивами не являются. У них (у объектов) совсем другая природа.

Dax>Кстати именно благодаря этой "природе" в JScript запросто реализуется "множественное" наследование (на самом деле частный случай подмешиваний):

Я хотел сказать, выглядят как ассоциативные массивы.
Насчёт удаления, поиска и т.д. я поторопился Совсем из головы вылетело, что в JScript это тоже есть ... А ведь про JavaScript сказал бы даже не задумываясь. Пожалуй заработал я тут большой минус

С Уважением, Andir!
using(RSDN@Home 1.1.4 beta 3){/* Работаем! */}
Re[5]: JScript - что-то типа map в С++
От: Andir Россия
Дата: 15.02.05 23:17
Оценка:
Здравствуйте, Dax, Вы писали:

OE>>>а как удалить то, например свойство "test1"?

A>>Никак в общем-то ...

Dax>В общем-то как:

Dax>delete enclosing_object.test1

Каюсь, каюсь ...

C Уважением, Andir!
using(RSDN@Home 1.1.4 beta 3){/* Работаем! */}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.