Skip to content

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);