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

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

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

חיפוש איבר במערך JS

מתוזמן נעוץ נעול הועבר ארכיון code613m
11 פוסטים 6 כותבים 696 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • avrahamA מנותק
    avrahamA מנותק
    avraham
    כתב ב נערך לאחרונה על ידי
    #1

    האם אפשר לחפש במערך אם יש בו איבר מסוים, בלי לעבור בלולאה על המערך?

    פורסם במקור בפורום CODE613 ב07/03/2016 23:41 (+02:00)

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #2

      אם המערך ממויין אפשר לעשות חיפוש בינאר הנקרא אריה במדבר

      פורסם במקור בפורום CODE613 ב07/03/2016 23:57 (+02:00)

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

        תודה רבה
        לפי מה שהבנתי מגוגל גם האריה הזה משתמש בלולאה, ורק חוסך זמן ומשאבים, הלא כן?

        פורסם במקור בפורום CODE613 ב08/03/2016 00:32 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • רחמיםר מנותק
          רחמיםר מנותק
          רחמים מורחק
          כתב ב נערך לאחרונה על ידי
          #4

          הוא משתמש בלולאה אבל לא עובר על כל המערך אלא על איברים מייצגים.

          פורסם במקור בפורום CODE613 ב08/03/2016 07:27 (+02:00)

          תגובה 1 תגובה אחרונה
          2
          • avrahamA מנותק
            avrahamA מנותק
            avraham
            כתב ב נערך לאחרונה על ידי
            #5

            המערך הוא אוסף מחרוזות, ואני מחפש פוקציה כמו indexOf שיודעת לחפש תו במחרוזת בלי לולאה בכלל, כך שיחפש לי את המחרוזת הספציפית בלי לולאה. יש כזה דבר?

            פורסם במקור בפורום CODE613 ב08/03/2016 08:24 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • א מנותק
              א מנותק
              ארכיטקט
              כתב ב נערך לאחרונה על ידי
              #6

              @avraham

              האם אפשר לחפש במערך אם יש בו איבר מסוים, בלי לעבור בלולאה על המערך?

              צר לי לומר לך אבל זאת סתירה לוגית, במשמעות המילולית המושג לחפש פירושו לעבור. מה שאתה רוצה זה מצביע על כתובת בזיכרון, ואם אין לך אותו, לא יעזור כלום.

              פורסם במקור בפורום CODE613 ב08/03/2016 08:33 (+02:00)

              אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

              תגובה 1 תגובה אחרונה
              3
              • A מנותק
                A מנותק
                avr416
                כתב ב נערך לאחרונה על ידי
                #7

                כמו שארכיטקט ורחמים כתבו לפני, גם הפונקציה indexOf ממומשת ע"י לולאה כזו או אחרת שרצה על המערך ומחפשת בו את האיבר, אלא שאתה לא צריך לכתוב אותה בעצמך וכבר יש לך פונקציה מוכנה, ככה שזה נדמה לך שאין בו לולאה, אבל באמת מאחורי הקלעים זה מה שקורה.

                פורסם במקור בפורום CODE613 ב08/03/2016 11:12 (+02:00)

                תגובה 1 תגובה אחרונה
                2
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #8

                  avr416 נדמה לי קלעת למטרת השואל, שבכלל לא מפחיד אותו הביצועים כמו הבלגן של כתיבת לולאה.
                  ואם ככה השואל סה"כ רצה לשמוע על קיומה של הפונקציה indexOf.

                  אבל אם כבר הוא שאל הוא אכן למד לדעת שindexOf לא עובד חכם באוסף מסודר (המשמעות מתחילה במערך ענק).

                  החיפוש הבינארי חותך כל פעם לשתיים. זה פעולה הפוכה מחזקת 2 שכל פעם מכפילה את גודלה.
                  במקרה הגרוע ביותר זה הנוסחה log(n) : זה נוסחה שמחזירה את המספר שדרוש ל"חזק" את שתיים עד שתגיע למס' של כל האיברים.
                  אם יש 10000 איברים אז זה 10 פעמים שכן 2 בחזקת 9.9 זה 1000 בקירוב (באקסל ע"י הנוסחה log עם פרמטר שני 2).
                  במקרה הנורמלי זה יהיה 5 פעמים.

                  הספריה underscore מממשת את זה בindexOf שלה.

                  _.indexOf(array, value, true) // הארגומנט השלישי מאשר שהמערך ממויין
                  

                  אני מאוד ממליץ בחיים לא לכתוב קוד אישי למימוש לדברים כאלה. יש די עבודה בשורות קוד שחייבים לכתוב בתחזוקה ודיבוג, לא צריך לחפש תעסוקה.

                  פורסם במקור בפורום CODE613 ב08/03/2016 11:30 (+02:00)

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

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

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

                    צריך אבל לזכור למיין כל הזמן
                    וגם זה עולה ביצועים

                    אתה יכול ליצור אוביקט ולהצמיד לו את המחרוזות כתכונות, אז זה מצביע ישר למיקום בזכרון.

                    פורסם במקור בפורום CODE613 ב08/03/2016 11:47 (+02:00)

                    תגובה 1 תגובה אחרונה
                    2
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #10

                      לא למיין אלא להכניס במקום הנכון (לא מצאתי לזה מימוש מוכן! נו). זה אכן עולה אבל ההנחה היא שיותר ניגשים מאשר מכניסים.

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

                      map עושה גם את החיפוש הטוב וגם חוסך מימוש של הכנסה ממויינת. אבל אני חושב שזה לא עונה תמיד על הצרכים כמו דבל מפתחות ועוד.

                      פורסם במקור בפורום CODE613 ב08/03/2016 12:58 (+02:00)

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

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

                      תגובה 1 תגובה אחרונה
                      1
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @דוד ל.ט.

                        לא למיין אלא להכניס במקום הנכון (לא מצאתי לזה מימוש מוכן! נו).

                        חצי כבר ממומש - למצוא מיקום, אז זה לא נורא:

                        var newItem = 3;
                        list.splice(_.sortedIndex(list, newItem), 0, newItem)
                        

                        פורסם במקור בפורום CODE613 ב08/03/2016 13:38 (+02:00)

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

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

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

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

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

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