Javascript 使用'Map'如何编写将farenheit值数组转换为celcius的函数?

Javascript 使用'Map'如何编写将farenheit值数组转换为celcius的函数?,javascript,Javascript,我对编程非常陌生,我正在尝试解决一个问题,我必须将华氏温度值数组转换为摄氏温度。虽然我不太确定从哪里开始使用.map,但我真的很感激您能帮助我理解如何解决这个问题 这是我第一次尝试解决测试问题 function convertTemps(array) { return array * (9/5) + 32 } 这些就是我试图解决的问题 describe('convertTemps', () => { it('should convert farenheit to celcius

我对编程非常陌生,我正在尝试解决一个问题,我必须将华氏温度值数组转换为摄氏温度。虽然我不太确定从哪里开始使用
.map
,但我真的很感激您能帮助我理解如何解决这个问题

这是我第一次尝试解决测试问题

function convertTemps(array) {
  return array * (9/5) + 32
}
这些就是我试图解决的问题

describe('convertTemps', () => {
  it('should convert farenheit to celcius for all temperatures in the array', () => {
    expect(convertTemps([23, 140, 212, 41])).to.deep.equal([-5, 60, 100, 5])
    expect(convertTemps([-58, -22, -4, 14])).to.deep.equal([-50, -30, -20, -10])
    expect(convertTemps([104, 122, 158, 176])).to.deep.equal([40, 50, 70, 80])
  })
})
如果可以使用es6(箭头功能)


您编写的是应该为数组中的每个项运行的函数,更好地称为回调谓词。您所要做的就是将该确切函数移动到
数组中。map()

请注意,
°F->°C
的公式不正确。正确的公式是
(°F− 32)×5/9=°C

下面是一个稍微详细的方法,演示如何简单地将函数移动到
.map

函数转换器temps(数组){
返回数组中每个值的array.map(//)
函数(temp){//运行此函数
返回(温度-32)*5/9
}
);
}
var数组=[23140212,41];
var结果=转换温度(数组);

控制台日志(结果)映射很简单,要么传递一个内联函数来描述如何处理数组中的每个项,要么定义一个单独的函数并将其传递到映射函数中

//内联映射
函数转换器temps(数组){
返回数组.map(temp=>temp*(9/5)+32)
}
//外部功能
函数转换器温度(temp){
返回温度*(9/5)+32;
}
函数转换器temps(数组){
返回数组.map(convertTemp)

}
这里是一个典型的映射示例:
constsquarenums=nums=>nums.map(x=>x*x)。然后,例如,
squareNums([3,5,6])
计算为
[9,25,36]
。这给了你一个提示吗?@RSchneyer是的,我看到了-刚刚更新了答案。非常感谢你抽出时间回答我的问题,我非常感谢。你解释它的方式帮助我更好地理解它。再次感谢。@TylerRoper您的回答非常彻底,您的措辞更容易让我理解,所以再次感谢您。这些家庭作业问题对我来说有点挑战性,我没有使用这些数组方法的经验,但我正在努力做得更好。@TylerRoper我的错误,在没有注意的情况下复制/粘贴了我自己的代码。现在应该很好了,谢谢你的接球!谢谢你抽出时间来帮我!谢谢你帮我解决这个问题,我现在已经解决了!
function convertTemps(array) {
    return array.map(element => element * (9/5) + 32);
}