카테고리 없음
자바스크립트 배열에 있는 수들의 최소값, 최대값 구하는 방법으로 일교차 구하는 함수 만들기javascript
NomadHaven
2022. 12. 5. 23:00
문제)
가정용 온도계를 만드는 회사에 근무하고 있는 당신, 최근의 업무는 하루 동안의 온도를 배열로 만들고 amplitude를 계산하는 것이다. 기기 오작동이 날수도 있음을 참고하라.
We work for a company building a smart home thermometer. Our most recent task is this: "Given an array of temperatures of one day, calculate the temperature amplitude. Keep in mind that sometimes there might be a sensor error"
하루 동안의 온도는 tmeperature이라는 변수에 배열로 저장되어 있다. 중간 기기 오작동으로 error가 포함되어 있다.
const temperature = [3, -2, -6, -1, 'error', 9, 13, 17, 15, 14, 9, 5];
calcTemoAmplitude라는 함수를 만든다. 해당 함수는 temps라는 매개 변수를 받고 max라는 최대값과 min이라는 최소값의 차를 반환한다.
const calcTemoAmplitude = function (temps) {
let max = temps[0]; // 최대값
let min = temps[0]; // 최소값
for (let i = 0; i < temperature.length; i++) {
const curTemp = temps[i];
//타입이 넘버가 아니면 continue 아래 문장은 실행하지 않고 다음 element로 넘어간다.
if (typeof curTemp !== 'number') continue;
if (curTemp > max) max = curTemp;
if (curTemp < min) min = curTemp;
}
console.log(max, min);
return max - min;
};
calcTemoAmplitude에 하루동안의 온도를 나타내는 배열은 temperture이라는 변수를 넘겨준다.
const amplitude = calcTemoAmplitude(temperature);
console.log(amplitude);
문제2)
위의 함수를 업그레이드 시켜 두가지 배열을 매개변수로 받은 뒤 두가지 배열의 모든 element들 중에서 가장 큰 값과 작은 값을 구한다.
const calcTemoAmplitudeNew = function (t1, t2) {
//concat은 두가지 배열을 연결하는 메소드다.
const temps = t1.concat(t2);
console.log(temps);
let max = temps[0];
let min = temps[0];
for (let i = 0; i < temperature.length; i++) {
const curTemp = temps[i];
//타입이 넘버가 아니면 continue 아래 문장은 실행하지 않고 다음 element로 넘어간다.
if (typeof curTemp !== 'number') continue;
if (curTemp > max) max = curTemp;
if (curTemp < min) min = curTemp;
}
console.log(max, min);
return max - min;
};
const amplitudeNew = calcTemoAmplitudeNew([3, 5, 1], [9, 0, 5]);
console.log(amplitude);