Javascript 新语法实现

问题描述

谁能告诉我如何在javascript中使用Babel实现类似python的列表数组[-1]的语法?我的意思是如何实现负索引。

解决方法

您可以使用自己的 proxy 实现然后使用它。

const letters = ['a','b','c','d','e'];
const proxy = new Proxy(letters,{
    get(target,prop) {
        if (!isNaN(prop)) {
            prop = parseInt(prop,10);
            if (prop < 0) {
                prop += target.length;
            }
        }
        return target[prop];
    }
});
proxy[0]; // => 'a'
proxy[-1]; // => 'e'
proxy[-2]; // => 'd'

请参阅此 article on medium 详细说明如何执行此操作。 我不知道其他方法,也许有一个 babel 插件可以提供帮助。