Loading...
StoyanDimitrov0016 avatar StoyanDimitrov0016 5 Точки

Exercise: Associative Arrays, 3. Piccolo

Здравейте, къде е грешката в кода ми, за да ми дава 20/100?

Реших я с Map след това и стана 100/100.

Ще се радвам за обратен отговор от някого.

Link Judge: https://judge.softuni.org/Contests/Compete/Index/1306#2

Код 20/100:

function valet(carList) {
    let parking = [];
    for (const car of carList) {
        let [action, carPlate] = car.split(', ');
        if (action == 'IN') {
            parking.push(carPlate);
        } else if (action == 'OUT') {
            parking.splice(parking.indexOf(carPlate), 1);
        }
    }
    if (parking.length > 0) {
        for (const car of parking.sort()) {
            console.log(car);
        }
    } else {
        console.log('Parking Lot is Empty');
    }
}

Код с Map 100/100 за референция:

function valet(carList) {
    let cars = new Map;
    carList.forEach(car => {
        let [action, carPlate] = car.split(', ');
        if (action == 'IN') {
            cars.set(carPlate, action);
        } else if (action == 'OUT') {
            cars.delete(carPlate);
        }
    });
    let sortedCars = Array.from(cars).sort((a, b) => a[0].localeCompare(b[0]));
    if (sortedCars.length == 0) {
        console.log('Parking Lot is Empty');
    } else {
        sortedCars.forEach(car => {
            console.log(car[0]);
        });
    }
}

Тагове:
0
JavaScript Fundamentals 20/02/2023 19:30:06
Axiomatik avatar Axiomatik 2422 Точки

Exercise parameters intentionally or unintentionally omit that before adding/deleting an element from the car-plate collection, you have to check if they are actually included in the array, which the Map object does for you under the hood (ie can not set the same property twice, but an array can contain the same plate number numerous times).

function valet(carList) {
    let parking = [];
    for (const car of carList) {
        let [action, carPlate] = car.split(', ');
        if (action == 'IN' && !parking.includes(carPlate)) {
            parking.push(carPlate);
        } else if (action == 'OUT' && parking.includes(carPlate)) {
            parking.splice(parking.indexOf(carPlate), 1);
        }
    }
    if (parking.length > 0) {
        for (const car of parking.sort((a, b) => a.localeCompare(b))) {
            console.log(car);
        }
    } else {
        console.log('Parking Lot is Empty');
    }
}

 

 

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