7-amaliy ish
Oh, Xudoga shukur, siz shu yerdasiz! Oxirgi stajyor hamma narsani butunlay buzdi! Mijozimizning barcha telefon raqamlari shifrlangan va biz ularni cheksiz savdo qo'ng'iroqlari bilan bezovta qilishimiz uchun bu telefon raqamlariga muhtojmiz! Format Telefon raqamlari satr sifatida saqlanadi va 11 ta raqamdan iborat bo'ladi, masalan '02078834982'va har doim bilan boshlanishi kerak 0. Biroq, g'alati narsa yuz berdi va endi barcha telefon raqamlarida juda ko'p tasodifiy belgilar, bo'shliqlar mavjud va ba'zilari umuman telefon raqamlari emas! Misol uchun, '02078834982'qandaydir tarzda bo'ldi 'efRFS:)0207ERGQREG88349F82!'va biz tekshirishimiz kerak bo'lgan yana ko'p qatorlar mavjud. Vazifa: Satr berilgan boʻlsa, unda yaroqli telefon raqami bor yoki yoʻqligini hal qilishingiz kerak. Agar shunday bo'lsa, tuzatilgan telefon raqamini qator sifatida qaytaring, ya'ni. '02078834982'bo'sh joy yoki maxsus belgilarsiz, aks holda qaytaring "Not a phone number".
Javob:
function isItANum(str) {
let number = ""
for (let item of str){
if(!isNaN(+item) && item !== " "){
number += item
}
}
if(number.length == 11 && +number[0] == 0){
return number
}else{
return "Not a phone number"
}
2-masala
O'rta Yer urushga kirishmoqchi. Yaxshilik kuchlari yovuz kuchlar bilan ko'p jang qiladilar. Turli irqlar albatta ishtirok etadi. Har bir poyga worthboshqalarga qarshi kurashda o'ziga xos xususiyatga ega. Yaxshi tomonda bizda quyidagi poygalar bor, ular bilan bog'liq worth:
Xobbitlar: 1
Erkaklar: 2
Elflar: 3
Mittilar: 3
Burgutlar: 4
Sehrgarlar: 10
Yomon tomonda bizda:
Orklar: 1
Erkaklar: 2
Wargs: 2
Goblinlar: 2
Uruk Xay: 3
Trollar: 5
Sehrgarlar: 10Har qanday jangda ob-havo, joylashuv, ta'minot va jasorat muhim rol o'ynasa-da, agar siz yaxshilik tomonining qiymatini qo'shsangiz va uni yomonlik tomonining qiymati bilan taqqoslasangiz, katta qiymatga ega bo'lgan tomon g'alaba qozonadi.
Shunday qilib, yaxshi tarafdagi irqlarning har birining hisobini, keyin esa yovuzlik tarafidagi irqlarning har birini hisoblab chiqsangiz, qaysi tomon g'alaba qozonishini aniqlang.
Kiritish:
Funktsiyaga ikkita parametr beriladi. Har bir parametr bitta bo'sh joy bilan ajratilgan bir nechta butun sonlar qatori bo'ladi. Har bir satr yaxshilik va yomonlik tarafidagi har bir irqning hisobini o'z ichiga oladi.
Birinchi parametr quyidagi tartibda yaxshi tarafdagi har bir poyganing hisobini o'z ichiga oladi:
Xobbitlar, erkaklar, elflar, mittilar, burgutlar, sehrgarlar.
Ikkinchi parametr yovuzlik tarafidagi har bir poyganing hisobini quyidagi tartibda o'z ichiga oladi:
Orklar, Erkaklar, Warglar, Goblinlar, Uruk Xay, Trollar, Sehrgarlar.
Barcha qiymatlar manfiy bo'lmagan butun sonlardir. Har bir tomon uchun olingan qiymat summasi 32 bitli butun son chegarasidan oshmaydi.
Chiqish:
"Battle Result: Good triumphs over Evil"Yaxshilik g'alaba qozonsa, "Battle Result: Evil eradicates all trace of Good"yomonlik g'alaba qozonsa yoki "Battle Result: No victor on this battle field"durang bilan tugasa, qaytib keling.
Javob:
function goodVsEvil(good, evil) {
good = good.split(' ');
evil = evil.split(' ');
//hobbits, men, elves, etc
let goodWorth = [1, 2, 3, 3, 4, 10];
//orcs, men, wargs, etc
let evilWorth = [1, 2, 2, 2, 3, 5, 10];
let goodArmyPoints = [];
//multiply goodWorth by type:
for (let i = 0; i < goodWorth.length; i++) {
goodArmyPoints.push(good[i] * goodWorth[i]);
}
goodArmyPoints = goodArmyPoints.reduce(function (sum, value) {
return sum + value;
});
let evilArmyPoints = [];
for (let j = 0; j < evilWorth.length; j++) {
evilArmyPoints.push(evil[j] * evilWorth[j]);
}
evilArmyPoints = evilArmyPoints.reduce(function (sum, value) {
return sum + value;
});
if (evilArmyPoints < goodArmyPoints) {
return "Battle Result: Good triumphs over Evil";
} else if (evilArmyPoints > goodArmyPoints) {
return "Battle Result: Evil eradicates all trace of Good";
} else {
return "Battle Result: No victor on this battle field";
}
}
Do'stlaringiz bilan baham: |