Python Arrays
by Derek Leung
JavaScript
class PythonArray {
constructor() {
return new Proxy([], {
get: function(target, name) {
var index = parseInt(name, 10);
if (name === NaN) {
if (name in target) return target[name];
else throw "Not a number";
}
// simple implementation
if (index < 0) return target[target.length + index];
else return target[index];
}
});
}
static from(arr) {
var pythonArray = new PythonArray();
for (var i = 0; i < arr.length; i++) {
pythonArray[i] = arr[i];
}
return pythonArray;
}
}
var arr = PythonArray.from([1, 2, 3]);
console.log(arr[0]); // 1
console.log(arr[-1]); // 3
console.log(arr.join("|")); // still works