Loading...
e.atanasova avatar e.atanasova 5 Точки

08. Array Manipulator

Здравейте,

На задачата получавам 36/100 и не намирам грешките си. Ще съм благодарна на малко помощ.

Това е кодът ми: https://pastebin.com/fiAJNxuM 

Условие на задачата: https://softuni.bg/trainings/resources/officedocument/63890/dokument-exercise-programming-fundamentals-with-javascript-september-2021/3449 

Благодаря!

0
JavaScript Fundamentals
Axiomatik avatar Axiomatik 2178 Точки

shift <positions> – shifts every element of the array the number of positions to the left (with rotation).

sumPairs – sums the elements in the array by pairs (first + second, third + fourth, …).

o For example, [1, 2, 4, 5, 6, 7, 8] -> [3, 9, 13, 8].

;-)

function manipulateArr(nums, commands) {

    for (let el of commands) {

        let [command, num1, ...rest] = el.split(' ');
        num1 = Number(num1);
        rest = rest.map(Number);

        switch (command) {
            case 'add':
                nums.splice(num1, 0, rest[0]);
                break;
            case 'addMany':
                nums.splice(num1, 0, ...rest);
                break;
            case 'contains':
                console.log(nums.indexOf(num1));
                break;
            case 'remove':
                nums.splice(num1, 1);
                break;
            case 'shift':
                // nums = shift(nums);
                shift(num1);
                break;
            case 'sumPairs':
                let newArr = [];
                nums = sumPairs(nums, newArr);
                break;
            case 'print':
                console.log(`[ ${nums.join(', ')} ]`);
                break;
            default:
                break;
        }
    }


    function shift(shiftAmount) {
        for (let j = 0; j < shiftAmount; j++) {
            // for (let i = 0; i < nums.length - 1; i++) {
            //     let temp = nums[i];
            //     nums[i] = nums[i + 1];
            //     nums[i + 1] = temp;
            // }
            let temp = nums.shift();
            nums.push(temp);
        }
        // return arr;
    }

    function sumPairs(arr, newArr) {
        for (let i = 0; i < arr.length - 1; i = i + 2) {
            let currEl = arr[i];
            let nextEl = arr[i + 1];
            let sum = currEl + nextEl;
            newArr.push(sum);
        }
        
        if (arr.length % 2 !== 0){
            newArr.push(arr[arr.length - 1]);
        }
        return newArr;
    }
}

 

1
12/07/2022 20:22:30
e.atanasova avatar e.atanasova 5 Точки

Много благодаря за помощта! 

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