Професионална програма
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 2468 Точки
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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.