기본 함수가 온도 데이터를 인수로 받아들이고 데이터에 대해 간단한 온도 변환 작업을 수행합니다. 객체를 변경하지 않고 동일한 기능을 어떻게 수행 할 수 있습니까? 즉, 함수는 전달 된 인수를 변경하지 않아야하며 오히려 복사본을 반환해야합니다.
function temperature(args) {
convertToF = convertToC = temperatureConverter
return Object.assign({
args,
convertToF,
convertToC
}, w.weatherData(args))
}
변환을 돕는 몇 가지 도우미 기능이 있습니다.
function temperatureConverter(args) {
const bool = args.unit === 'F'
return (bool) ? self.Celsiusconverter(args) : self.fahrenheitConverter(args)
}
function Celsiusconverter(args) {
args.value = (args.value - 32) * (5 / 9)
args.unit = 'C'
return {
...args
}
}
function fahrenheitConverter(args) {
args.value = (args.value * 9 / 5 + 32)
args.unit = 'F'
return {
...args
}
}
args 객체는 다음과 같습니다.
const objTemp1 = {
unit: 'C',
type: 'Temp',
date: '2010-04-20T00:00:00.000Z',
place: 'someCity',
value: 10,
}
그래서 기능은 다음과 같이 보일 것이고 문제가 해결됩니다.
function temperatureConverter(args) {
const bool = newArgs.unit === 'F'
return (bool) ? self.Celsiusconverter(args) : self.fahrenheitConverter(args)
}
function Celsiusconverter(args) {
newArgs = {...args}
newArgs.value = (newArgs.value - 32) * (5 / 9)
newArgs.unit = 'C'
return newArgs
}
function fahrenheitConverter(args) {
newArgs = {...args}
newArgs.value = (newArgs.value * 9 / 5 + 32)
newArgs.unit = 'F'
return newArgs
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다