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

JS Fundamentals Same Numbers

някой може ли малко помощт немога разбера къде греша дава ми 83/100 Judge 

 

function solve(input) {

let number = ('' + input).split('');

let sum = 0;

let chek = true;

for (let i = 1; i < number.length; i += 2) { let firstNum = Number(number[i]);

let secondNum = Number(number[i - 1]); if (firstNum !== secondNum)

{ chek = false }

}

for (let i = 0; i < number.length; i++) { number[i] = Number(number[i])

sum += number[i];

} if (chek === true)

{ console.log(true)

} else {

console.log(false)

}

console.log(sum);

}

Тагове:
0
JavaScript Fundamentals
boykopk avatar boykopk 147 Точки

Здравей,

тук for (let i = 1; i < number.length; i += 2), трябва да е for (let i = 1; i < number.length; i ++).

Ето едно по-просто решение:

https://pastebin.com/jprPafv7

0
Elena123456 avatar Elena123456 235 Точки

Здравейте, може ли малко помощ - не мога да разбера защо при положение, че правилно ми се сумират числата от string масива, ми показва, че digits не са еднакви (а те са еднакви - 222222 примерно). И реално това е условието на задачата - да сметнем сумата от digits и да изпишем на конзолата дали са еднакви.

function checkForTheSameDigits(input){

    input = String(input);

    let areTheSame = true;

    let sum = 0;

    for(let i = 0i < input.lengthi++ ){

     if(input[i] !== input[i+1]){

         areTheSame = false;       

     }    

     sum += Number(input[i]);

    }

    console.log(areTheSame);

    console.log(sum);

}

checkForTheSameDigits(2222)

0
Axiomatik avatar Axiomatik 2422 Точки

Hi Eli, 

Check inside of your for-loop with the debugger, at the last iteration when you compare if(input[i] !== input[i+1]), where i + 1 will be out of range and the result will be therefore undefined, which is why you are getting a false result. Number comparison needs to be stopped at one step before the loop has ended => if (i < input.length - 1)

;-)

function checkForTheSameDigits(input) {
    input = String(input);
    let areTheSame = true;
    let sum = 0;

    for (let i = 0; i < input.length; i++) {
        if (i < input.length - 1) {
            if (input[i] !== input[i + 1]) {
                areTheSame = false;
            }
        }
        sum += Number(input[i]);
    }
    console.log(areTheSame);
    console.log(sum);
}

 

1
Elena123456 avatar Elena123456 235 Точки

Hi @ Axiomatik , how are you? I hope you are doing well! :)

Thanks for your explanation. I understand why my solution is not valid and added some correction:

function checkForTheSameDigits(input){

    input = String(input);

    let areTheSame = true;

    let sum = 0;

    for(let i = 0i < input.length - 1i++ ){

     if(input[i] !== input[i+1]){

         areTheSame = false;       

     }   

     sum += Number(input[i]);

    }

    sum += Number(input[input.length-1]);

    console.log(areTheSame);

    console.log(sum);

}

Best regards!

Eli

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