דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. המרת קלט מורכב מהמשתמש למערך, JS

המרת קלט מורכב מהמשתמש למערך, JS

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 4 כותבים 164 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yossizY מנותק
    yossizY מנותק
    yossiz
    השיב לWWW ב נערך לאחרונה על ידי
    #2

    @www
    https://github.com/euank/node-parse-numeric-range

    @www אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

    בנוסף אני צריך שזה יהיה גם טקסט, לא רק במערך, אלא גם בקלט, לדוגמה:
    01,03,06-12 ייתן את התוצאה: 01 03 06 07 08 09 10 11 12.
    זה כבר מסובך לגמרי...

    לא הבנתי את השלב הנוסף של הקושי

    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

    WWWW תגובה 1 תגובה אחרונה
    3
    • WWWW מנותק
      WWWW מנותק
      WWW
      השיב לyossiz ב נערך לאחרונה על ידי WWW
      #3

      @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

      לא הבנתי את השלב הנוסף של הקושי

      בדיוק כמו שכתבתי, אני צריך אופציה של "01" ו "001", וכן "0000".

      באמצעות הפונקציה הנ"ל, זה מה שאני מקבל:
      07823bf9-ff35-4cf4-a8ea-3df260397115-image.png

      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

      yossizY OdedDvirO 2 תגובות תגובה אחרונה
      0
      • yossizY מנותק
        yossizY מנותק
        yossiz
        השיב לWWW ב נערך לאחרונה על ידי yossiz
        #4

        @www

        לא כתבת ברור אם הקוד אמור לזהות את הפורמט או שמישהו יזין את הפורמט לקוד והקוד רק חייב לפרמט אותו.

        האם צריך לפרמט כל חלק בפני עצמו? או שמספיק לזהות מהמספר הראשון את הפורמט של האחרים? (זה מספיק רק בהנחה שהם ממויינים ממטה למעלה)
        (בתמונה יש תערובות של פורמטים בקלט)

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        WWWW תגובה 1 תגובה אחרונה
        3
        • OdedDvirO מנותק
          OdedDvirO מנותק
          OdedDvir
          השיב לWWW ב נערך לאחרונה על ידי
          #5

          @www אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

          באמצעות הפונקציה הנ"ל, זה מה שאני מקבל:
          07823bf9-ff35-4cf4-a8ea-3df260397115-image.png

          מה הבעיה בפלט, זה בדיוק מה שרצית, לא?
          משאלת @yossiz אני מבין שרצונך לפרמט גם את הפלט עם אפסים מובילים (לפי הקלט)

          dovidD תגובה 1 תגובה אחרונה
          3
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            השיב לOdedDvir ב נערך לאחרונה על ידי dovid
            #6
            function range(input){
                var result = [];
                var items = input.split(',');
                for(var item of items){
                    var ranges = item.split('-');
            
                    if(ranges.length == 1)
                        result.push(item);
                    else{
                       var start = +ranges[0];
                       var end = +ranges[1];
                       var needPad = ranges[0][0] == '0';
                       for(let i = start; i <= end; i++)
                            result.push(needPad ? i.toString().padStart(ranges[1].length, '0') : i);
                       
                    }
                }
                return result;
            }
            
            range("01,03,06-12,25-30")
            

            ["01", "03", "06", "07", "08", "09", "10", "11", "12", "25", "26", "27", "28", "29", "30"]

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            yossizY WWWW 2 תגובות תגובה אחרונה
            4
            • yossizY מנותק
              yossizY מנותק
              yossiz
              השיב לdovid ב נערך לאחרונה על ידי yossiz
              #7

              @dovid שתי הערות/שיפורים קטנים:
              שורה 3

              var items = input.split(',').map(s => s.trim());
              

              וכנ"ל שורה 5:

              var ranges = item.split('-').map(s => s.trim());
              

              שורה 14:

              result.push(needPad ? i.toString().padStart(ranges[1].length, '0') : i.toString());
              

              וכמובן צריך לטפל במצבים של קלט לא תקין...

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              yossizY תגובה 1 תגובה אחרונה
              2
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לyossiz ב נערך לאחרונה על ידי yossiz
                #8

                @WWW אם עוד לא הסתכלת... הקוד של הספרייה שהבאתי הוא פחות או יותר שווה לקוד של @dovid חוץ מכמה פיצ'רים שאתה לא צריך מן הסתם:

                • כמה תווים לציין טווח: - ... .. ‥ …
                • התעלמות מערכים לא מספריים (זה יכול להיות טוב או לא טוב, תלוי בצרכים)
                • אפשרות לטווחים "הפוכים" (10-1 במקום 1-10)
                • אפשרות למספרים שליליים (הקוד של דוד כמעט תומך בזה)

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                WWWW תגובה 1 תגובה אחרונה
                3
                • WWWW מנותק
                  WWWW מנותק
                  WWW
                  כתב ב נערך לאחרונה על ידי
                  #9

                  וואוו! תודה רבה לכם! @dovid @yossiz
                  אני הלכתי לישון... ואתם הבאתם לי משהו מוכן!

                  WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                  תגובה 1 תגובה אחרונה
                  1
                  • WWWW מנותק
                    WWWW מנותק
                    WWW
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #10

                    @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

                    @www

                    לא כתבת ברור אם הקוד אמור לזהות את הפורמט או שמישהו יזין את הפורמט לקוד והקוד רק חייב לפרמט אותו.

                    האם צריך לפרמט כל חלק בפני עצמו? או שמספיק לזהות מהמספר הראשון את הפורמט של האחרים? (זה מספיק רק בהנחה שהם ממויינים ממטה למעלה)
                    (בתמונה יש תערובות של פורמטים בקלט)

                    אני רוצה שאם יקלידו: "08-11" יתקבל מערך עם סטרינגים "08" "09" וכו' "11".
                    ואם יקלידו 1-3, יתקבל מערך עם סטרינגים "1" "2" "3".
                    ואם יקלידו "001-003" יתקבל סטרינגים "001" "002" "003".

                    עכשיו אני בודק אם הקוד של @dovid עונה על הציפיות!

                    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                    תגובה 1 תגובה אחרונה
                    1
                    • WWWW מנותק
                      WWWW מנותק
                      WWW
                      השיב לyossiz ב נערך לאחרונה על ידי WWW
                      #11

                      @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

                      @WWW אם עוד לא הסתכלת... הקוד של הספרייה שהבאתי הוא פחות או יותר שווה לקוד של @dovid חוץ מכמה פיצ'רים שאתה לא צריך מן הסתם:

                      הקוד של הספרייה שלך כבר עבד לי מצוין אתמול, אבל רק עם 1 2 3 וכמובן לא עם 01 02 03.
                      הקוד של @dovid הרבה יותר מובן וקריא.

                      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                      תגובה 1 תגובה אחרונה
                      1
                      • WWWW מנותק
                        WWWW מנותק
                        WWW
                        השיב לdovid ב נערך לאחרונה על ידי
                        #12

                        @dovid עובד מצוין!
                        יישר כח.
                        הוספתי את התיקונים של @yossiz

                        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                        תגובה 1 תגובה אחרונה
                        0

                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום