Професионална програма
Loading...
+ Нов въпрос
mr.ivanov avatar mr.ivanov 18 Точки

Задача 6 Sorted List от Class Lab

Не мога да разбера какво точно се иска в задачата. Пише да пазим колекция от числа които винаги да са подредени, но не пише в масив ли да ги пазим или в обект? Имам и още един въпрос тъй като не съм работил с класове досега и ми е малко объркано. Как да ги пазя сортирани през цялото време?

https://softuni.bg/downloads/svn/js-core/Sept-2019/JS-Advanced/07.%20JS-Advanced-Classes/07.%20JS-Advanced-JS-Classes-Exercise.docx

Тагове:
0
JavaScript Advanced 16/10/2019 20:38:37
willystyle avatar willystyle 2466 Точки
Best Answer
class SortedList {
    constructor(list = []) {
        this.list = list.sort((a, b) =>  a - b);
        this.size = this.list.length;
    }

    add(element) {
        this.list.push(element);
        this.list.sort((a, b) => a - b);
        this.size++;
        return;
    }

    remove(index) {
        if (index < 0 || index >= this.list.length) {
            throw new Error(`Index doesn't exist`);
        } else {
            this.list.splice(index, 1);
            this.size--;
            return;
        }
    }

    get(index) {
        if (index < 0 || index >= this.list.length) {
            throw new Error(`Index doesn't exist`);
        } else {
            return this.list[index];
        }
    }
}

 

1
TeodorStefanovPld avatar TeodorStefanovPld 1275 Точки

e това е елементарно. Един клас който ще държи в себе си масив празен. И после трябав да го разпишеш с методите.

тоест примерно 

class Collection {

 numbers:[]

add=(num)=>{numbers.push(num)} 

remove=()=>{numbers.pop()}

}

нещо таков е трябва да видиш синтаксиса само. Не съм писал ванила js от месеци а само реакт напоследък и c#  но това е идеята. И имплиментираш там както е по условие.

0
mr.ivanov avatar mr.ivanov 18 Точки

Не мисля че е само това. Направих я, локално минава но не и в judge. Мисля че трябва да използвам getter и setter, но не знам как точно да го направя. В Judge всичко гърми, какво не е наред?

https://pastebin.com/HpZzNudB

Опитах и така но пак не става

https://pastebin.com/0CqSJdXA

0
17/10/2019 15:21:16
DenisCholakov avatar DenisCholakov 2 Точки

Направих го и без клас, защото според мен така е по-правилно да се реши задачата. 

function createSortedList() {
    const list = [];
    return {
        add(num) {
            if (typeof(num) === 'number') {
                list.push(num);
                list.sort((a, b) => a - b);
            } else {
                console.log('The array takes only numbers.')
            }
        },
        remove(index) {
            if (index >= 0 && index < list.length) {
                list.splice(index, 1);
            } else {
                console.error('The index is outside the bounds of the array');
            }
        },
        get(index) {
            if (index >= 0 && index < list.length) {
                return list[index];
            } else {
                console.error('The index is outside the bounds of the array');
            }
        },
        get size() {
            return list.length
        }
    }
}
0