שלח תשובה

זירת השאלות

523
צפיות
15
תשובות

לולאת FOR ב – JS

,‏ 5 ביולי, 2004

שלום!
הקוד שלפניכם אמור להדפיס את הנתונים שבמערך.
משום מה בכל תכנית שבה הפעלתי את הלולאה FOR קבלתי דף ריק.
האם ישנה כתיבה מיוחדת ללואות בJS?

אודה לתשובתכם.

<html>
<head>
</head>

<body>
<script type = "text/javascript">

names = new array (4);

names[0] = "dodo";
names[1] = "bibi";
names[2] = "gaga";
names[3] = "caca";

sortedname = names.sort();

for(i=0; i<4; i++) {
            document.write (sortedname[i]);
           }


<script>
</body>
</html>

תגיות:

15 תשובות

  1. ניר טייב הגיב:

    נסה כך:


    for (var i=0;i<names.length;i++){
    document.write(names[i]);
    }

    (זה כדי לאתר איפה הבעיה ב-sortedName או בלולאה)

  2. hedish הגיב:

    איך אני מציג את תכולת הערך sortedna
    sortedname?

    תודה.

  3. BuildHome הגיב:

    אולי התכוונת ככה

    document.write(sortedname);

    אם הבנתי נכון.

    אגב, JS שפה רגישה וכתבת new array במקום new Array כך שאני מניח שהקוד לא יעבוד אם לא תשנה זאת.

  4. אוריקס הגיב:

    כמה הערות:
    1. sort היא פרוצדורה ולא פונקציה, ולכן היא לא מחזירה מערך אלא מסדרת אותו.
    2. לא סגרת תגית script
    3. array זה עם A גדולה: Array
    4. משתנים ב JS מגדירים בעזרת המילה השמורה var:

    var x=5
    ולא
    x=5

    הקוד המתוקן:

    <html>
    <head>
    </head>

    <body>
    <script type = "text/javascript">
    var names = new Array(4);

    names[0] = "dodo";
    names[1] = "bibi";
    names[2] = "gaga";
    names[3] = "caca";

    names.sort();

    for(i=0; i<names.length ; i++) {
                document.write (names[i]);
    }
    </script>
    </body>
    </html>

  5. hedish הגיב:

    javascript לולאות


    do {
           next = window.prompt ("enter the next name");

           if  (next > " " && next != "undefined")
              names [i] = next;

           i= i + 1;
        
          } while (next > " " && next != "undefined");

    מישהו יכול להסביר לי בבקשה את התנאי הזה " " > next .
    כאשר אני לוחץ על כפתור CANCEL בחלון ה prompt , החלון מתבטל וממשיך לשאר שורות הקוד.
    הייתי רוצה לדעת איך זה עובד … בהקשר ללואה שציינתי פה למעלה.

    אודה לתשובתכם!!

  6. ניר טייב הגיב:

    טוב
    ללולאת do while זו לולאה שמבצעת פעם אחת לפחות את הפעולות לאחר מכן אם התנאי מתמלא זה ממשיך את הלולאה אם לא אז זה ממשיך לשורות הקוד שלאחר הלולאה.
    בדוגמא שלך זה פשוט מקפיץ פעם אחת את התיבה ומכניס את הערך שלו למשתנה next. משום שאי-אפשר להשתמש באופרטוריי השוואה כדוגמאת <, >, >=, <= ("==" אפשרי) אז התנאי לא מתמלא (זו שגיאה לוגית ולכן אין שגיאת JS) והקוד ממשיך אחרי הלולאה

    אם תשנה את התנאי לכזה

    next>"" –>(הופך להיות) next.length==0

  7. hedish הגיב:

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

    רגע, אולי…
    אם אשים במקום ">" את הסימן "=!" , המשפט יהיה נכון?

    נ.ב.
    תודה על ההסבר בנוגע ללולאת DO WHILE

  8. BuildHome הגיב:

    שרשר שאלותיך
    הודעות לא משורשרות יימחקו.

  9. hedish הגיב:

    אחסון מידע באובייקטים JS
    הקוד שמתחת אמור להציג בדף HTML את פרטי המשתמשים.
    עברתי על הקוד מספר פעמים, אך איני מוצא שגיאה תחבירית או לוגית.

    help?

    אודה לתשובתכם.


    <script type="text/javascript">

    // construction for object  Card
    function Card (name, address, work, Home) {
        this.name = name;
        this.address = address;
        this.work_phone = work;
        this.home_phone = Home;
        this.PrintCard = PrintCard;
    }    

    // definision of PrintCard function
    function PrintCard () {
        line1 = "<b>Nsme: </b>" + this.name + "<br>n";
        line2 = "<b>Address: </b>" + this.address + "<br>n";
        line3 = "<b>Work Phone: </b>" + this.work_phone + "<br>n";
        line3 = "<b>Work Phone: </b>" + this.home_phone + "<br>n";
        document.write (line1, line2,line3, line4);
    }

    </script>
    </head>

    <body>
    <h1>JavaScript Business Cards</h1>
    Script begins here.<hr>
    <script type="text/javascript">

    //creat the object
    sue = new Card ("Sue Suthers", "123 elm street", "555-1234", "555-9876");
    phred = new Card ("Phred Madsen", "233 Oak Lane", "555-2222", "555-4444");

    //and print them
    sue.PrintCard();
    phred.PrintCard();
    </script>
    end of script
    </body>
    </html>

  10. ניר טייב הגיב:

    שלוש טעויות
    ב-document.write אתה צריך לשרשר מחרוזות ז"א להשתמש בסימן + או בשיטה conact של אובייקט המחרוזת.
    ה-פסיק זו השגיאה.

    אתה צריך להגדיר את המשתנים ז"א שתה צריך להוסיף ל-line1,2,3 את המילה var

    אין לך משתנה בשם line4 ופעמיים התחלת את Line3 ז"א שרק ה"טלפון בעבודה" יהיה ב-Line3

    קוד מתוקן:

    <script type="text/javascript">

    // construction for object  Card
    function Card (name, address, work, Home) {
        this.name = name;
        this.address = address;
        this.work_phone = work;
        this.home_phone = Home;
        this.PrintCard = PrintCard;
    }    

    // definision of PrintCard function
    function PrintCard () {
        var line1 = "<b>Nsme: </b>" + this.name + "<br>n";
        var line2 = "<b>Address: </b>" + this.address + "<br>n";
        var line3 = "<b>Work Phone: </b>" + this.work_phone + "<br>n";
        var line4 = "<b>Work Phone: </b>" + this.home_phone + "<br>n";
        document.write (line1.conact(line2,line3, line4));
    }

    </script>

  11. BuildHome הגיב:

    שרשר שאלותיך
    אינך משרשר שאלות וכתוצאה מכך שאלותיך יימחקו ללא אזהרה.

  12. hedish הגיב:

    כיצד לעשות רווח בין שורות ב – HTML?
    תודה.

  13. BuildHome הגיב:

    אפשר לעשות זאת
    עם התגית BR.

    <br>

    מקווה שהבנתי אותך נכון.

שלח תשובה