[ Web Proxy ]
URL:
Viewing: https://uz.javascript.info/string [Back]  [Original]

Satrlar
UZ

Ushbu ochiq manbali loyihani butun dunyo bo'ylab odamlar uchun taqdim etmoqchimiz.

Ushbu qo'llanmaning mazmuni sizning tilingizga tarjima qilishga yordam bering!

    Javascript.info saytidan qidirish:
    O'quv qo'llanmasidan qidiring:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek

    JavaScript-da matnli malumotlar satrlar sifatida saqlanadi. Bitta belgi uchun alohida tip yoq.

    Satrlarning ichki formati har doim UTF-16, u sahifa kodlashiga bogliq emas.

    Qoshtirnoqlar

    Qoshtirnoq turlarini eslaymiz.

    Satrlar bitta qoshtirnoq, qosh qoshtirnoq yoki teskari qoshtirnoq ichiga olinishi mumkin:

    let single = "bitta qo'shtirnoq";
    let double = "qo'sh qo'shtirnoq";
    
    let backticks = `teskari qo'shtirnoqlar`;

    Bitta va qosh qoshtirnoqlar aslida bir xil. Teskari qoshtirnoqlar esa bizga har qanday ifodani ${} ichiga orab satrga kiritish imkonini beradi:

    function sum(a, b) {
      return a + b;
    }
    
    alert(`1 + 2 = ${sum(1, 2)}.`); // 1 + 2 = 3.

    Teskari qoshtirnoqlarni ishlatishning yana bir afzalligi ular satrning bir nechta qatorga chozilishiga imkon beradi:

    let guestList = `Mehmonlar:
     * John
     * Pete
     * Mary
    `;
    
    alert(guestList); // mehmonlar ro'yxati, bir nechta qator

    Tabiiy korinadi, togrimi? Lekin bitta yoki qosh qoshtirnoqlar bunday ishlamaydi.

    Agar ularni ishlatib, bir nechta qatordan foydalanishga harakat qilsak, xato boladi:

    let guestList = "Mehmonlar: // Xato: Unexpected token ILLEGAL
      * John";

    Bitta va qosh qoshtirnoqlar tilning yaratilishi qadimgi davrlaridan keladi, osha paytda kop qatorli satrlar ehtiyoji hisobga olinmagan edi. Teskari qoshtirnoqlar ancha keyinroq paydo bolgan va shuning uchun koproq imkoniyatlarga ega.

    Teskari qoshtirnoqlar shuningdek birinchi teskari qoshtirnoqdan oldin shablon funksiyasini belgilashga imkon beradi. Sintaksis: func`string`. func funksiyasi avtomatik ravishda chaqiriladi, satr va kiritilgan ifodalarni oladi va ularni qayta ishlashi mumkin. Bu xususiyat teglangan shablonlar deb ataladi, u kamdan-kam uchraydi, lekin bu haqda MDN da oqishingiz mumkin: Template literals.

    Maxsus belgilar

    Bitta va qosh qoshtirnoqlar bilan ham kop qatorli satrlarni yangi qator belgisi deb ataladigan \n yordamida yaratish mumkin, bu qator uzilishini bildiradi:

    let guestList = "Mehmonlar:\n * John\n * Pete\n * Mary";
    
    alert(guestList); // ko'p qatorli mehmonlar ro'yxati, yuqoridagi bilan bir xil

    Oddiy misolda, bu ikki qator teng, shunchaki boshqacha yozilgan:

    let str1 = "Salom\nDunyo"; // "yangi qator belgisi" yordamida ikki qator
    
    // teskari qo'shtirnoq va oddiy yangi qator yordamida ikki qator
    let str2 = `Salom
    Dunyo`;
    
    alert(str1 == str2); // true

    Boshqa, kamroq uchraydigan maxsus belgilar ham bor:

    Belgi Tavsif
    \n Yangi qator
    \r Windows matn fayllarida ikkita belgining kombinatsiyasi \r\n yangi uzilishni ifodalaydi, Windows bolmagan OS da esa shunchaki \n. Bu tarixiy sabablarga kora, kopchilik Windows dasturlari ham \n ni tushunadi.
    \',\",\` Qoshtirnoqlar
    \\ Teskari chiziq
    \t Tab
    \b, \f, \v Orqaga qaytarish, Shakl olib berish, Vertikal Tab toliqlik uchun eslatilgan, eski zamonlardan kelgan, hozir ishlatilmaydi (ularni hozir unutishingiz mumkin).

    Korib turganingizdek, barcha maxsus belgilar teskari chiziq belgisi \ bilan boshlanadi. U qochish belgisi deb ham ataladi.

    U shunchalik maxsus bolgani uchun, agar satr ichida haqiqiy teskari chiziq \ korsatishimiz kerak bolsa, uni ikki marta yozishimiz kerak:

    alert(`Teskari chiziq: \\`); // Teskari chiziq: \

    Qochgan qoshtirnoqlar \', \", \` bir xil qoshtirnoqli satrga qoshtirnoq kiritish uchun ishlatiladi.

    Masalan:

    alert("Men'm Walrus!"); // Men'm Walrus!

    Korib turganingizdek, ichki qoshtirnoqdan oldin teskari chiziq \' qoyishimiz kerak, aks holda u satr oxirini bildiradi.

    Albatta, faqat orab turgan qoshtirnoqlar bilan bir xil qoshtirnoqlarni qochirish kerak. Shuning uchun yanada nafis yechim sifatida biz qosh qoshtirnoq yoki teskari qoshtirnoqga otishimiz mumkin:

    alert("Men'm Walrus!"); // Men'm Walrus!

    Bu maxsus belgilardan tashqari, Unicode kodlari uchun maxsus notation \u ham bor, u kamdan-kam ishlatiladi va Unicode haqidagi ixtiyoriy bobda yoritilgan.

    Satr uzunligi

    length xossasi satr uzunligiga ega:

    alert(`Men\n`.length); // 3

    Etibor bering, \n bitta maxsus belgi, shuning uchun uzunlik haqiqatan ham 3.

    length- bu xossa

    Bazi boshqa tillar tajribasiga ega odamlar bazanstr.lengthornigastr.length() chaqirishda xato qiladi. Bu ishlamaydi.

    Etibor bering, str.length raqamli xossa, funksiya emas. Undan keyin qavs qoyish shart emas. .length() emas, balki .length.

    Belgilarga kirish

    pos pozitsiyasidagi belgini olish uchun kvadrat qavslar [pos] ishlatiladi yoki str.at(pos) usulini chaqiriladi. Birinchi belgi nol pozitsiyasidan boshlanadi:

    let str = `Salom`;
    
    // birinchi belgi
    alert( str[0] ); // S
    alert( str.at(0) ); // S
    
    // oxirgi belgi
    alert( str[str.length - 1] ); // m
    alert( str.at(-1) );

    Korib turganingizdek, .at(pos) usuli salbiy pozitsiyaga imkon berishning afzalligiga ega. Agar pos salbiy bolsa, u satr oxiridan hisoblanadi.

    Demak .at(-1) oxirgi belgini, .at(-2) undan oldingi belgini va hokazo anglatadi.

    Kvadrat qavslar salbiy indekslar uchun har doim undefined qaytaradi, masalan:

    let str = `Salom`;
    
    alert(str[-2]); // undefined
    alert(str.at(-2)); // l

    Shuningdek, for..of yordamida belgilar boylab iteratsiya qilishimiz mumkin:

    for (let char of "Salom") {
      alert(char); // S,a,l,o,m (char "S" bo'ladi, keyin "a", keyin "l" va hokazo)
    }

    Satrlar ozgarmas

    JavaScript-da satrlarni ozgartirib bolmaydi. Belgini ozgartirish imkonsiz.

    Buni ishlamasligini korsatish uchun sinab koraylik:

    let str = "Salom";
    
    str[0] = "s"; // xato
    alert(str[0]); // ishlamaydi

    Odatiy yechim butunlay yangi satr yaratish va uni eski orniga str ga tayinlashdir.

    Masalan:

    let str = "Salom";
    
    str = "s" + str[1]; // satrni almashtirish
    
    alert(str); // salom

    Keyingi bolimlarda bunga koproq misollar koramiz.

    Registrni ozgartirish

    toLowerCase() va toUpperCase() usullari registrni ozgartiradi:

    alert("Interface".toUpperCase()); // INTERFACE
    alert("Interface".toLowerCase()); // interface

    Yoki agar bitta belgini kichik harfga otkazmoqchi bolsak:

    alert("Interface"[0].toLowerCase()); // 'i'

    Substring qidirish

    Satr ichida substring qidirish uchun bir nechta usul mavjud.

    str.indexOf

    Birinchi usul str.indexOf(substr, pos).

    U berilgan pos pozitsiyasidan boshlab str da substr ni qidiradi va mos kelish topilgan pozitsiyani yoki hech narsa topilmasa -1 ni qaytaradi.

    Masalan:

    let str = "Widget with id";
    
    alert(str.indexOf("Widget")); // 0, chunki 'Widget' boshida topilgan
    alert(str.indexOf("widget")); // -1, topilmadi, qidiruv registrga sezgir
    
    alert(str.indexOf("id")); // 1, "id" 1-pozitsiyada topilgan (..idget with id)

    Ixtiyoriy ikkinchi parametr bizga berilgan pozitsiyadan qidirishni boshlash imkonini beradi.

    Masalan, "id" ning birinchi uchrayishi 1-pozitsiyada. Keyingi uchrayishni qidirish uchun 2-pozitsiyadan qidirishni boshlaylik:

    let str = "Widget with id";
    
    alert(str.indexOf("id", 2)); // 12

    Agar bizni barcha uchrayishlar qiziqtirsa, indexOf ni tsiklda ishga tushirishimiz mumkin. Har bir yangi chaqiruv oldingi mos kelishdan keyingi pozitsiya bilan amalga oshiriladi:

    let str = "As sly as a fox, as strong as an ox";
    
    let target = "as"; // buni qidiraylik
    
    let pos = 0;
    while (true) {
      let foundPos = str.indexOf(target, pos);
      if (foundPos == -1) break;
    
      alert(`${foundPos} da topildi`);
      pos = foundPos + 1; // keyingi pozitsiyadan qidirishni davom ettirish
    }

    Xuddi shu algoritm qisqaroq yozilishi mumkin:

    let str = "As sly as a fox, as strong as an ox";
    let target = "as";
    
    let pos = -1;
    while ((pos = str.indexOf(target, pos + 1)) != -1) {
      alert( pos );
    }
    str.lastIndexOf(substr, position)

    Satrning oxiridan boshigacha qidiradigan oxshash str.lastIndexOf(substr, position) usuli ham bor.

    U uchrayishlarni teskari tartibda royxatlaydi.

    if testida indexOf bilan biroz noqulaylik bor. Biz uni if ga quyidagicha qoya olmaymiz:

    let str = "Widget with id";
    
    if (str.indexOf("Widget")) {
        alert("Topdik"); // ishlamaydi!
    }

    Yuqoridagi misoldagi alert korsatilmaydi, chunki str.indexOf("Widget") 0 ni qaytaradi (yani boshlovchi pozitsiyada mos kelishni topganini anglatadi). Togri, lekin if 0 ni false deb hisoblay

    di.

    Shuning uchun biz aslida -1 ni tekshirishimiz kerak:

    let str = "Widget with id";
    
    if (str.indexOf("Widget") != -1) {
        alert("Topdik"); // endi ishlaydi!
    }

    includes, startsWith, endsWith

    Zamonaviyroq str.includes(substr, pos) usuli str da substr mavjudligiga qarab true/false qaytaradi.

    Agar mos kelishni tekshirish kerak bolsa, lekin uning pozitsiyasi kerak bolmasa, bu togri tanlovdir:

    alert("Widget with id".includes("Widget")); // true
    
    alert("Salom".includes("Xayr")); // false

    str.includes ning ixtiyoriy ikkinchi argumenti qidirishni boshlash pozitsiyasidir:

    alert("Widget".includes("id")); // true
    alert("Widget".includes("id", 3)); // false, 3-pozitsiyadan "id" yo'q

    str.startsWith va str.endsWith usullari aynan ular aytganini qiladi:

    alert("Widget".startsWith("Wid")); // true, "Widget" "Wid" bilan boshlanadi
    alert("Widget".endsWith("get")); // true, "Widget" "get" bilan tugaydi

    Substring olish

    JavaScript-da substring olish uchun 3 ta usul mavjud: substring, substr va slice.

    str.slice(start [, end])

    start dan end gacha (lekin end ni oz ichiga olmasdan) satr qismini qaytaradi.

    Masalan:

    let str = "stringify";
    alert( str.slice(0, 5) ); // 'strin', 0 dan 5 gacha substring (5 ni o'z ichiga olmaydi)
    alert( str.slice(0, 1) ); // 's', 0 dan 1 gacha, lekin 1 ni o'z ichiga olmaydi, faqat 0 dagi belgi

    Agar ikkinchi argument bolmasa, slice satr oxirigacha boradi:

    let str = "stringify";
    alert( str.slice(2) ); // 'ringify', 2-pozitsiyadan oxirigacha

    start/end uchun salbiy qiymatlar ham mumkin. Ular pozitsiya satr oxiridan hisoblanishini anglatadi:

    let str = "stringify";
    
    // o'ngdan 4-pozitsiyadan boshlab, o'ngdan 1-pozitsiyada tugat
    alert( str.slice(-4, -1) ); // 'gif'
    str.substring(start [, end])

    start va end orasidagi satr qismini qaytaradi (end ni oz ichiga olmaydi).

    Bu deyarli slice bilan bir xil, lekin start ning end dan katta bolishiga imkon beradi (bu holda u shunchaki start va end qiymatlarini almashtiradi).

    Masalan:

    let str = "stringify";
    
    // bular substring uchun bir xil
    alert( str.substring(2, 6) ); // "ring"
    alert( str.substring(6, 2) ); // "ring"
    
    // ...lekin slice uchun emas:
    alert( str.slice(2, 6) ); // "ring" (bir xil)
    alert( str.slice(6, 2) ); // "" (bo'sh satr)

    Salbiy argumentlar (slice dan farqli olaroq) qollab-quvvatlanmaydi, ular 0 deb qaraladi.

    str.substr(start [, length])

    start dan boshlab, berilgan length bilan satr qismini qaytaradi.

    Oldingi usullardan farqli olaroq, bu tugash pozitsiyasi orniga length ni korsatish imkonini beradi:

    let str = "stringify";
    alert( str.substr(2, 4) ); // 'ring', 2-pozitsiyadan 4 ta belgi ol

    Birinchi argument oxirdan hisoblash uchun salbiy bolishi mumkin:

    let str = "stringify";
    alert( str.substr(-4, 2) ); // 'gi', 4-pozitsiyadan 2 ta belgi ol

    Bu usul til spetsifikatsiyasining Ilova B da joylashgan. Bu faqat brauzer-joylashtirilgan JavaScript dvigatellari uni qollab-quvvatlashi kerakligini anglatadi va uni ishlatish tavsiya etilmaydi. Amalda u hamma joyda qollab-quvvatlanadi.

    Har qanday chalkashlikdan qochish uchun bu usullarni takrorlaylik:

    usul tanlaydi salbiylar
    slice(start, end) start dan end gacha (end ni oz ichiga olmaydi) salbiylarga ruxsat beradi
    substring(start, end) start va end orasida (end ni oz ichiga olmaydi) salbiy qiymatlar 0 ni anglatadi
    substr(start, length) start dan length ta belgi ol salbiy start ga ruxsat beradi
    Qaysi birini tanlash kerak?

    Ularning barchasi ishni bajara oladi. Rasmiy ravishda substr ning kichik kamchiligi bor: u JavaScript spetsifikatsiyasining asosiy qismida emas, balki brauzer-only xususiyatlarini qamrab oluvchi Ilova B da tasvirlangan va asosan tarixiy sabablarga kora mavjud. Shuning uchun brauzer bolmagan muhitlar uni qollab-quvvatlamasligi mumkin. Lekin amalda u hamma joyda ishlaydi.

    Qolgan ikki variantdan slice biroz moslashuvchanroq, u salbiy argumentlarga imkon beradi va yozish qisqaroq.

    Shuning uchun amaliy foydalanish uchun faqat slice ni yodlab qolish kifoya.

    Satrlarni solishtirish

    Taqqoslashlar bobidan malumki, satrlar alifbo tartibida belgi-belgi solishtiriladi.

    Garchi, bazi galatiliklar bor.

    1. Kichik harf har doim katta harfdan kattaroq:

      alert("a" > "Z"); // true
    2. Diakritik belgili harflar tartibdan tashqari:

      alert("sterreich" > "Zealand"); // true

      Bu mamlakat nomlarini saralasak galati natijalarga olib kelishi mumkin. Odatda odamlar Zealand ning royxatda sterreich dan keyin kelishini kutadilar.

    Nima sodir bolishini tushunish uchun JavaScript-da satrlar UTF-16 yordamida kodlanishini bilishimiz kerak. Yani: har bir belgining mos raqamli kodi bor.

    Kod uchun belgini va teskarisini olish imkonini beradigan maxsus usullar mavjud:

    str.codePointAt(pos)

    pos pozitsiyasidagi belgi uchun kodni ifodalovchi onli raqam qaytaradi:

    // turli registrli harflar turli kodlarga ega
    alert( "Z".codePointAt(0) ); // 90
    alert( "z".codePointAt(0) ); // 122
    alert( "z".codePointAt(0).toString(16) ); // 7a (agar hex qiymat kerak bo'lsa)
    String.fromCodePoint(code)

    Raqamli code boyicha belgi yaratadi

    alert( String.fromCodePoint(90) ); // Z
    alert( String.fromCodePoint(0x5a) ); // Z (argument sifatida hex qiymatdan ham foydalanish mumkin)

    Endi 65..220 kodli belgilarni (lotin alifbosi va biroz qoshimcha) korib, ulardan satr yasaylik:

    let str = "";
    
    for (let i = 65; i <= 220; i++) {
      str += String.fromCodePoint(i);
    }
    alert(str);
    // Chiqish:
    // ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
    // 

    Kordingizmi? Avval katta harflar, keyin bir nechta maxsus belgilar, keyin kichik harflar va chiqish oxirida .

    Endi a > Z nima uchun ekanligi aniq.

    Belgilar raqamli kod boyicha solishtiriladi. Kattaroq kod belgining kattaroq ekanligini anglatadi. a (97) ning kodi Z (90) ning kodidan kattaroq.

    • Barcha kichik harflar katta harflardan keyin keladi, chunki ularning kodlari kattaroq.
    • kabi bazi harflar asosiy alifbodan alohida turadi. Bu yerda uning kodi a dan z gacha bolgan har qanday narsadan kattaroq.

    To'g'ri solishtirishlar

    Satrlarni solishtirish uchun togri algoritm koringanidan murakkabroq, chunki turli tillar uchun alifbolar turlicha.

    Shuning uchun brauzer qaysi tilda solishtirish kerakligini bilishi kerak.

    Yaxshiyamki, zamonaviy brauzerlar ECMA-402 xalqarolashtirish standartini qollab-quvvatlaydi.

    U turli tillarda satrlarni ularning qoidalariga kora solishtiradigan maxsus usulni taqdim etadi.

    str.localeCompare(str2) chaqiruvi til qoidalariga kora str str2 dan kichik, teng yoki katta ekanligini korsatadigan butun sonni qaytaradi:

    • Agar str str2 dan kichik bolsa, salbiy raqam qaytaradi.
    • Agar str str2 dan katta bolsa, musbat raqam qaytaradi.
    • Agar ular ekvivalent bolsa, 0 qaytaradi.

    Masalan:

    alert("sterreich".localeCompare("Zealand")); // -1

    Bu usul aslida hujjatlarda korsatilgan ikkita qoshimcha argumentga ega, bu tilni belgilash (sukut boyicha muhitdan olinadi, harflar tartibi tilga bogliq) va registr sezgirlik yoki "a" va "" bir xil deb qaralishi kerakmi kabi qoshimcha qoidalarni ornatish imkonini beradi.

    Xulosa

    • 3 turdagi qoshtirnoq bor. Teskari qoshtirnoqlar satrning bir nechta qatorga chozilishi va ifodalarni ${} kiritish imkonini beradi.
    • Biz yangi qator \n kabi maxsus belgilardan foydalanishimiz mumkin.
    • Belgi olish uchun: [] yoki at usulini ishlatamiz.
    • Substring olish uchun: slice yoki substring dan foydalanamiz.
    • Satrni kichik/katta harfga otkazish uchun: toLowerCase/toUpperCase dan foydalanamiz.
    • Substring qidirish uchun: indexOf dan yoki oddiy tekshiruvlar uchun includes/startsWith/endsWith dan foydalanamiz.
    • Satrlarni tilga kora solishtirish uchun: localeCompare dan foydalanamiz, aks holda ular belgi kodlari boyicha solishtiriladi.

    Satrlarda bir nechta boshqa foydali usullar ham bor:

    • str.trim() satrning boshi va oxiridagi boshliqlarni olib tashlaydi (kesadi).
    • str.repeat(n) satrni n marta takrorlaydi.
    • va koproq narsalarni qollanmada topish mumkin.

    Satrlar muntazam ifodalar bilan qidirish/almashtirish uchun usullar ham bor. Lekin bu katta mavzu, shuning uchun u alohida oquv qollanma bolimida Muntazam ifodalar tushuntirilgan.

    Shuningdek, hozir satrlar Unicode kodlashiga asoslanganligini va shuning uchun solishtirishlar bilan muammolar borligini bilish muhim. Unicode haqida koproq malumot Unicode, Satr ichki tuzilishi bobida.

    Vazifalar

    str matnini katta bosh harf bilan qaytaradigan ucFirst(string) funktsiyasini yozing, masalan:

    ucFirst("john") == "John";

    Sinovlar bilan sandbox-ni oching.

    yechim

    Biz birinchi belgini ozgartira olmaymiz, chunki JavaScript-dagi matnlar ozgarmasdir.

    Ammo biz mavjud bolgan matnga asosan birinchi belgini katta registr qilishimiz mumkin:

    let newStr = str[0].toUpperCase() + str.slice(1);

    Ammo kichik bir muammo bor. Agar str bosh bolsa, unda str[0] aniqlanmagan(undefined), shuning uchun xato boladi.

    Bu yerda ikkita variant mavjud:

    1. str.charAt(0) dan foydalanish, chunki u har doim matni qaytaradi (ehtimol bosh).
    2. Bosh satr uchun test qoshish.

    Mana, ikkinchi variant:

    function ucFirst(str) {
      if (!str) return str;
    
      return str[0].toUpperCase() + str.slice(1);
    }
    
    alert(ucFirst("john")); // John

    Yechimni sandbox-dagi sinovlar bilan oching.

    Agar str tarkibida viagra yoki XXX bolsa, true qaytaradigan checkSpam(str) funksiyasini yozing, aks holda false.

    Funktsiya katta-kichik harflarga sezgir bolmasligi kerak:

    checkSpam("buy ViAgRA now") == true;
    checkSpam("free xxxxx") == true;
    checkSpam("innocent rabbit") == false;
    yechim

    Qidiruvni katta-kichik harflarga sezgir qilmaslik uchun satrni kichik harfga keltiramiz va keyin qidiramiz:

    function checkSpam(str) {
      let lowerStr = str.toLowerCase();
    
      return lowerStr.includes("viagra") || lowerStr.includes("xxx");
    }
    
    alert(checkSpam("buy ViAgRA now"));
    alert(checkSpam("free xxxxx"));
    alert(checkSpam("innocent rabbit"));

    str uzunligini tekshiradigan truncate(str, maxlength) funktsiyasini yarating va agar u maxlength dan oshib ketsa str ohirini "..." ellipsis belgisi bilan almashtiring, uzunlik maxlength ga teng.

    Funktsiyaning natijasi kesilgan (kerak bolsa) matn bolishi kerak.

    Masalan:

    truncate("Ushbu mavzu bo'yicha men aytmoqchi bo'lgan narsa:", 20) = "Ushbu mavzu bo'yicha..."
    
    truncate("Hammaga salom!", 20) = "Hammaga salom!"

    Sinovlar bilan sandbox-ni oching.

    yechim

    Maksimal uzunlik maxlength bolishi kerak, shuning uchun biz ellipsis uchun joy berish uchun uni biroz qisqartirishimiz kerak.

    Aslida ellipsis uchun bitta unikod belgisi mavjudligiga etibor bering. Bu uchta nuqta emas.

    function truncate(str, maxlength) {
      return str.length > maxlength ? str.slice(0, maxlength - 1) + "" : str;
    }

    Yechimni sandbox-dagi sinovlar bilan oching.

    Matn shaklida narx bor $120. Yani, birinchi navbatda dollar belgisi, keyin esa raqam.

    Bunday satrdan sonli qiymatni chiqaradigan va qaytaradigan extractCurrencyValue(str) funktsiyasini yarating.

    Masalan:

    alert(extractCurrencyValue("$120") === 120); // true

    Sinovlar bilan sandbox-ni oching.

    yechim
    function extractCurrencyValue(str) {
      return +str.slice(1);
    }

    Yechimni sandbox-dagi sinovlar bilan oching.

    O'quv qo'llanma xaritasi

    Izohlar

    izoh berishdan oldin buni o'qing
    • Agar sizda nimani yaxshilash kerakligi haqida takliflaringiz bo'lsa - iltimos, GitHub muammosini yuboring yoki izoh berish o'rniga so'rov yuboring.
    • Agar siz maqolada biror narsani tushunolmasangiz - iltimos, batafsilroq ma'lumot bering.
    • Bir nechta so'z so'zlarini kiritish uchun <code> yorlig'ini ishlating, bir nechta satrlar uchun - ularni <pre> yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepen)

    Web Proxy Viewer  |  New URL  |  Original Page