Array
class MyArray { #size; #length = 0; #data = {}; constructor(sizeOrData) { if (arguments.length > 0) { if (arguments.length === 1) { this.#size = sizeOrData; } else { this.push(sizeOrData); } } }
#checkLength() { if (this.#size !== undefined && this.#size === this.#length) { throw Error("Array is full"); } }
get length() { return this.#length; }
push(...items) { for (let item of items) { this.#checkLength(); this.#data[this.#length] = item; this.#length++; } }
pop() { delete this.#data[this.#length - 1]; this.#length--; }
toString() { let string = '[ '; for (let i = 0; i < this.#length; i++) { string += ` ${this.#data[i]}` if (i < this.#length - 1) { string += ', '; } }
return string + ' ]' }}
const arr = new MyArray(3);
arr.push(1);arr.push(10);arr.push(100);arr.push(11, 12, 12)
// console.log(arr);// console.log(arr.length);
// arr.pop();// console.log('' + arr);// console.log(arr.length);
// const a = new Array(1,2,3,4);// console.log(a);