Accessing array[-1]
ããã°ã©ã è¨èªã«ãã£ã¦ã¯ãè² ã®å¤ã使ã£ã¦é åè¦ç´ ã«ã¢ã¯ã»ã¹ãããã¨ãå¯è½ã§ããã®å ´åã¯æ«å°¾ããæ°ãããã¾ãã
ãã®ããã«ãªãã¾ãã
let array = [1, 2, 3];
array[-1]; // 3, æå¾ã®è¦ç´
array[-2]; // 2, æå¾ãã1ã¤å
array[-3]; // 1, æå¾ãã2ã¤å
ã¤ã¾ããarray[-N] 㯠array[array.length - N] ã¨åãã§ãã
ãã®æåãå®è£ ãããããã·ã使ãã¾ãããã
次ã®ããã«åä½ãã¾ã:
let array = [1, 2, 3];
array = new Proxy(array, {
/* your code */
});
alert( array[-1] ); // 3
alert( array[-2] ); // 2
// ä»ã®é
åã®æ©è½ã¯ "ãã®ã¾ã¾" åä½ãã¹ãã§ã
let array = [1, 2, 3];
array = new Proxy(array, {
get(target, prop, receiver) {
if (prop < 0) {
// arr[1] ã®ããã«ã¢ã¯ã»ã¹ãã¦ã
// prop ã¯æååãªã®ã§ãæ°å¤ã«å¤æããå¿
è¦ãããã¾ã
prop = +prop + target.length;
}
return Reflect.get(target, prop, receiver);
}
});
alert(array[-1]); // 3
alert(array[-2]); // 2