איך אני יודעת האם הקוד שכתבתי תקין?
כשאני רושמת בתוך התרגיל לא מופיע לי כלום בצד של התוצאה
ואז כתבתי את זה בתוך תוכנת BRACATS
function log(msg) {
p_log.innerHTML += msg + '<br />';
}
function person(name){
this.name= name;
this.age = 1;
}
var personPrototype ={};
personPrototype.growUp = function(age){
this.age += 1;
};
personPrototype.hello = function(){
return log('My name is' + this.name + 'and I am' + this.age + ' years old');
}
// Fill Code Here
person.prototype = personPrototype;
var p1 = new Person('Mike');
var p2 = new Person('Jim');
// prints: My name is Mike and I am 1 years old
p1.hello();
p1.growUp();
// prints: My name is Mike and I am 2 years old
p1.hello();
// prints: My name is Jim and I am 1 years old
p2.hello();
function log(msg) {
p_log.innerHTML += msg + '<br />';
}
// Fill Code Here
class Person {
constructor(name) {
this.name = name;
this.age = 1;
}
growUp(age) {
this.age++;
}
hello() {
log ("My name is " + this.name +" and I am " + this.age + " years old");
}
}
var p1 = new Person('Mike');
var p2 = new Person('Jim');
// prints: My name is Mike and I am 1 years old
p1.hello();
p1.growUp();
// prints: My name is Mike and I am 2 years old
p1.hello();
// prints: My name is Jim and I am 1 years old
p2.hello();
עבור תרגיל 2 - גם באמצעות ES6:
function log(msg) {
p_log.innerHTML += msg + '<br />';
}
// Write Code Here
class Summer {
constructor () {
this.sumTotal = 0;
}
add (number) {
this.sumTotal += number;
}
getCurrentSum() {
return (this.sumTotal);
}
}
var s1 = new Summer();
var s2 = new Summer();
s1.add(10);
s1.add(20);
s2.add(30);
s2.add(5);
// prints 30
log(s1.getCurrentSum());
// prints 35
log(s2.getCurrentSum());
'''
היי ינון, לא כ"כ הבנתי את השימוש בconcat בתרגיל ה3.
הרי זה לא שיש לנו שני מערכים שונים שאנחנו רוצים למזג, יש לנו מערך ריק שלתוכו אנחנו רוצים לעשות Push למכוניות השונות.
באופן כללי שווה לזכור ש concat מייצר מערך חדש, ו push מוסיף דברים על המערך הקיים. בשאלה הזאת שתי האופציות עובדות טוב אבל לפעמים כן יהיה חשוב לנו לבחור באחת הגישות
קראתי בדוקומנטציה על reduce אך בשורה הבאה:
this.maxCar = newList.reduce((prev,cur)=>cur.speed > prev.speed ? cur :prev );
אני לא מבין איך בדיוק זה עושה לולאה על כל המערך ולא בודק את שני האברים הראשונים או האחרונים?
לכאורה, אם שומרים את המקסימום מהשלב שבו נקלטו המכוניות, אם יהיה מאוחר יותר שינוי במהירות מכונית (לדוגמא אם במקום c1.drive(20; בשורה 28, נכתוב c1.drive(60) ) הוא יפתור לא נכון, כלומר הוא לא יחשב אותו כמקסימום, כיון שהבדיקה נעשתה לפני כן.
איך אפשר להוסיף לפונקציה drive חלק שיעדכן את המקסימום בשעת הצורך (המקסימום אצלי שייך למחלקה race ולא למחלקת car)