Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отрицательный индекс (https://javascript.ru/forum/misc/30753-otricatelnyjj-indeks.html)

Shript 14.08.2012 15:41

Отрицательный индекс
 
Вопрос: почему у самого массива (не у его методов slice и др.) не поддерживается отрицательный индекс? кто-нибудь пробовал бороться/ решал изящно? Например,
var a=["aa","bb"]; alert(a[-1]);

ksa 14.08.2012 15:53

Цитата:

Сообщение от Shript
кто-нибудь пробовал бороться/ решал изящно?

Х\з на сколько это изящно... :D Но работает.

var o={};
o[-1]='test';
alert(o[-1]);

Shript 14.08.2012 15:59

Цитата:

Сообщение от ksa (Сообщение 197499)
Х\з на сколько это изящно... :D Но работает.

var o={};
o[-1]='test';
alert(o[-1]);

Спасибо :)

Я лентяй и болван. Столкнулся, не поискал и сразу стал плакаться на форум. Это, имхо, что-то вроде ассоц. массива или объекта. Если же речь о том, чтобы без явного присвоения индекса -1 использовать его и др. отриц., тут в зависимости от задачи (в моём случае -1 - первый с конца, и т.д.):

var a=["aa","bb","cc"];
var i=-1; // индекс
if(i<0){// как-то так
  i=a.length+i;
}
alert(a[i]);

ksa 14.08.2012 16:03

Цитата:

Сообщение от Shript
в моём случае -1 - первый с конца

Эва...

B@rmaley.e><e 15.08.2012 08:49

Можно реализовать с помощью прокси, однако
Цитата:

Сейчас Прокси не входит в стандарт, но его стандартизация запланирована в ECMAScript Harmony.


Часовой пояс GMT +3, время: 08:20.