function (Challenge)

vancouver·2023년 5월 19일
0

javascript이해하기

목록 보기
9/22

문제 설명

Dolphins와 Koalas에 대해 이야기를 이어나갈게요! 새로운 체조 경기 규칙이 추가되었습니다.
각 팀은 3번 경기를 치르고, 그 후에 3번 점수의 평균이 계산됩니다 (따라서 각 팀당 평균 점수가 하나씩 계산됩니다).
한 팀은 다른 팀의 평균 점수의 최소 두 배 이상을 가지고 있을 때만 승리합니다. 그렇지 않으면 어느 팀도 승리하지 않습니다.

  1. 3개의 점수의 평균을 계산하는 화살표 함수 'calcAverage'를 생성합니다.
  2. 두 팀의 평균을 계산하기 위해 해당 함수를 사용합니다.
  3. 'checkWinner'라는 함수를 생성합니다. 이 함수는 각 팀의 평균 점수 ('avgDolphins'와 'avgKoalas')를 매개변수로 받아서 위의 규칙에 따라 승리한 팀과 승리 점수를 함께 콘솔에 출력합니다. 예시: "Koalas win (30 vs. 13)"
  4. 'checkWinner' 함수를 사용하여 Data 1과 Data 2에 대해 승자를 결정합니다.
  5. 이번에는 무승부를 무시합니다.

내 풀이

// To do
function checkWinner(avgDolphins, avgKoalas) {

    const calcAverageDolphins = avgDolphins / 3;
    const calcAverageKoalas = avgKoalas / 3;


    if (calcAverageKoalas > calcAverageDolphins && calcAverageKoalas >= (2 * calcAverageDolphins)) {
        console.log(`Koalas win 🥇 (${calcAverageKoalas} vs. ${calcAverageDolphins})`)
    } else if (calcAverageDolphins > calcAverageKoalas && calcAverageDolphins >= (2 * calcAverageKoalas)) {
        console.log(`Dolphins win 🥇 (${calcAverageDolphins} vs. ${calcAverageKoalas})`)
    } else {
        console.log(`No team wins...`)
    }
}

checkWinner((85 + 54 + 41), (23 + 34 + 27));

정답

// solution
const calcAverage = (a, b, c) => (a + b + c) / 3;


//test1
const scoreDolphins = calcAverage(44, 23, 71);
const scoreKoalas = calcAverage(65, 54, 49);


const checkWinner = function (avgDolphins, avgKoalas) {
    if (avgDolphins >= 2 * avgKoalas) {
        console.log(`Dolphins win 🥇 (${avgDolphins} vs. ${avgKoalas})`);
    } else if (avgKoalas >= 2 * avgDolphins) {
        console.log(`Koalas win 🥇 (${avgDolphins} vs. ${avgKoalas})`);
    } else {
        console.log(`No team wins...`);
    }
}
checkWinner(scoreDolphins, scoreKoalas);
checkWinner(576, 111);

const friends = [`Michael`, `Steven`, `Peter`];

// Add elements
const newLength = friends.push(`Jay`);
console.log(friends);
console.log(newLength);

friends.unshift(`John`);
console.log(friends);

// Remove elements
friends.pop();// Last
const popped = friends.pop();
console.log(popped);
console.log(friends);

friends.shift(); //First
console.log(friends);

console.log(friends.indexOf(`Steven`));
console.log(friends.indexOf(`Bob`));

friends.push(23);
console.log(friends.includes(`Steven`));
console.log(friends.includes(`Bob`));
console.log(friends.includes(23));

if (friends.includes(`Steven`)) {
    console.log(`You have a friends called Steven`);
}

push

배열 끝에 추가

unshift

배열 맨 앞에 추가

pop

마지막 배열 삭제

shift

맨 앞 배열 삭제

indexOf

배열의 포함된 문자열의 위치 파악 (숫자로 표현)
없으면 -1

includes

배열의 포함된 문자열의 내용추가

Object

const jang = {
    firstName: `Jang`,
    lastName: `hoon`,
    age: 2023 - 1998,
    job: `programmer`,
    friends: [`Michael`, `Peter`, `Steven`]
};

const interestdIn = prompt(`What do you want to know about Jonas? Choose between firstName,lastName, age, job, and friends`);

if (jang[interestdIn]) {
    console.log(jang[interestdIn]);
} else {
    console.log(`Wrong request! Choose between firstName, lastName, age, job, and friends`);
}

jang.location = `South Korea`;
jang[`twitter`] = `@alksdfjaaks`;
console.log(jang);
// challenge
// "Jang has 3 friends, and his best friends is called Michael"
console.log(`${jang.firstName} has ${jang.friends.length} friends, and his best friends is called ${jang.friends[0]}`)

Coding Challenge #1 (내 풀이)

const jang = {
    firstName: `Jang`,
    lastName: `hoon`,
    birthYear: 1998,
    job: `programmer`,
    friends: [`Michael`, `Peter`, `Steven`],
    hasDriversLicense: true,

calcAge: function () {
        this.age = 2023 - this.birthYear;
        return this.age;
    },

    license: function () {
        this.driver = this.hasDriversLicense;
        if (this.hasDriversLicense === true) {
            return `has a driver's License`
        } else {
            return `has no driver's License`
        }

    }
};

// challenge
// "Jang is a 25-year old programmer, and he has a/no driver's Licensce"
console.log(`${jang.firstName} is a ${jang.calcAge()}-year old ${jang.job}, and he ${jang.license()}`);

Coding Challenge #1 (Solution)

const jang = {
    firstName: `Jang`,
    lastName: `hoon`,
    birthYear: 1998,
    job: `programmer`,
    friends: [`Michael`, `Peter`, `Steven`],
    hasDriversLicense: true,
  
 calcAge: function () {
        this.age = 2023 - this.birthYear;
        return this.age;
    },

    getSummary: function () {
        return `${this.firstName} is a ${this.calcAge()} - year old ${jang.job}, and he has ${this.hasDriversLicense ? `a` : `no`} driver's license.`
    }
  
console.log(jang.getSummary());

# Coding Challenge #3
> 객체를 사용하여 계산을 구현하십시오! 
BMI = 질량 /** 2 = 질량
/ (높이 * 높이) (kg의 질량과 미터의 높이)


1. 각각에 대해 전체 이름, 질량 및 속성에 대한 속성을 가진 개체를 만듭니다.
높이(Mark Miller 및 John Smith)

2. 각 개체에 'calcBMI' 메서드를 생성하여 BMI계산합니다(동일한
두 개체에 대한 메서드). BMI 값을 속성에 저장하고 반환합니다.
방법에서

3. 전체 이름과 함께 BMI가 더 높은 콘솔에 로그인합니다.
각각의 BMI.: "John의 BMI(28.3)Mark(23.9)보다 높습니다!

> Test Data : Marks weights 78 kg and is 1.69 m tall. John weights 92 kg and is 1.95 m 
tall.

Coding Challenge #2 (내 풀이)

const mark = {
    firstName: `Mark`,
    lastName: `Miller`,
    weight: 62,
    height: 1.69,

    calcBMI: function () {
        this.bmi = Math.round(this.weight / Math.pow(this.height, 2))
        return this.bmi;
    }
};


const john = {
    firstName: `John`,
    lastName: `Smith`,
    weight: 92,
    height: 1.95,

    calcBMI: function () {
        this.bmi = Math.round(this.weight / Math.pow(this.height, 2))
        return this.bmi;
    }
};

const bmi = function () {
    if (`${john.calcBMI()}` > `${mark.calcBMI()}`) {
        return `${john.firstName}'s BMI (${john.bmi}) is higher than ${mark.firstName}'s (${mark.bmi})`
    } else {
        return `${mark.firstName}'s BMI (${mark.bmi}) is higher than ${john.firstName}'s (${john.bmi})`
    }
};

console.log(`${bmi()}`);

Coding Challenge #2 (Solution)

// solution
const mark = {
    fullName: `Mark Miller`,
    mass: 78,
    height: 1.69,
    calcBMI: function () {
        this.bmi = this.mass / this.height ** 2;
        return this.bmi;
    }
};

const john = {
    fullName: `John Smith`,
    mass: 92,
    height: 1.95,
    calcBMI: function () {
        this.bmi = this.mass / this.height ** 2;
        return this.bmi;
    }
};
mark.calcBMI();
john.calcBMI();

console.log(mark.bmi, john.bmi);

if (mark.bmi > john.bmi) {
    console.log(`${mark.fullName}'s BMI (${mark.bmi}) is higher than ${john.fullName}'s BMI (${john.bmi})`);
} else if (john.bmi > mark.bmi) {
    console.log(`${john.fullName}'s BMI (${john.bmi}) is higher than ${mark.fullName}'s BMI (${mark.bmi})`);
}

Coding Challenge #3

객체를 사용하여 계산을 구현하십시오!
BMI = 질량 / 키 * 2 = 질량
/ (높이
높이) (kg의 질량과 미터의 높이)

  1. 각각에 대해 전체 이름, 질량 및 속성에 대한 속성을 가진 개체를 만듭니다.
    높이(Mark Miller 및 John Smith)

  2. 각 개체에 'calcBMI' 메서드를 생성하여 BMI를 계산합니다(동일한
    두 개체에 대한 메서드). BMI 값을 속성에 저장하고 반환합니다.
    방법에서

  3. 전체 이름과 함께 BMI가 더 높은 콘솔에 로그인합니다.
    각각의 BMI. 예: "John의 BMI(28.3)는 Mark(23.9)보다 높습니다!

Test Data : Marks weights 78 kg and is 1.69 m tall. John weights 92 kg and is 1.95 m
tall.

내 풀이

const mark = {
    firstName: `Mark`,
    lastName: `Miller`,
    weight: 62,
    height: 1.69,

    calcBMI: function () {
        this.bmi = Math.round(this.weight / Math.pow(this.height, 2))
        return this.bmi;
    }
};


const john = {
    firstName: `John`,
    lastName: `Smith`,
    weight: 92,
    height: 1.95,

    calcBMI: function () {
        this.bmi = Math.round(this.weight / Math.pow(this.height, 2))
        return this.bmi;
    }
};

const bmi = function () {
    if (`${john.calcBMI()}` > `${mark.calcBMI()}`) {
        return `${john.firstName}'s BMI (${john.bmi}) is higher than ${mark.firstName}'s (${mark.bmi})`
    } else {
        return `${mark.firstName}'s BMI (${mark.bmi}) is higher than ${john.firstName}'s (${john.bmi})`
    }
};

console.log(`${bmi()}`);

Solution

// solution
const mark = {
    fullName: `Mark Miller`,
    mass: 78,
    height: 1.69,
    calcBMI: function () {
        this.bmi = this.mass / this.height ** 2;
        return this.bmi;
    }
};

const john = {
    fullName: `John Smith`,
    mass: 92,
    height: 1.95,
    calcBMI: function () {
        this.bmi = this.mass / this.height ** 2;
        return this.bmi;
    }
};
mark.calcBMI();
john.calcBMI();

console.log(mark.bmi, john.bmi);

if (mark.bmi > john.bmi) {
    console.log(`${mark.fullName}'s BMI (${mark.bmi}) is higher than ${john.fullName}'s BMI (${john.bmi})`);
} else if (john.bmi > mark.bmi) {
    console.log(`${john.fullName}'s BMI (${john.bmi}) is higher than ${mark.fullName}'s BMI (${mark.bmi})`);
}

0개의 댓글