在js中使用Map,Reduce和filter来将华​​氏温度转换为celcius

时间:2016-04-30 04:33:48

标签: javascript arrays dictionary

我有一系列温度,我必须将它们转换为度数celcius,我被告知我需要在javascript中使用map / reduce。我查看了文档,但我似乎无法弄清楚如何做到这一点。 这是我的阵列:

var fahrenheit = [0, 32, 45, 50, 75, 80, 99, 120];

3 个答案:

答案 0 :(得分:1)

尝试以这种方式使用map

var fahrenheit = [0, 32, 45, 50, 75, 80, 99, 120];
var celcius = fahrenheit.map(v => ((v - 32) * (5/9)).toFixed(1));
//If you do not want the decimal points then write,
//   fahrenheit.map(v => ((v - 32) * (5/9)) | 0);

console.log(celcius); //["-17.8", "0.0", "7.2", "10.0", "23.9", "26.7", "37.2", "48.9"]

将F转换为C的公式为

  

C =((F-32)*(5/9))

答案 1 :(得分:1)

这应该有效

  var celcius = fahrenheit.map(function(elem) {
        return Math.round((elem - 32) * 5 / 9);
    });

或在ES6中

fahrenheit.map(elem => Math.round((elem - 32) * 5 / 9));

你得到了

celcius //  [-18, 0, 7, 10, 24, 27, 37, 49]

答案 2 :(得分:0)

我想这应该做到

var fahrenheit = [0, 32, 45, 50, 75, 80, 99, 120],
       celcius = fahrenheit.map(f => (f-32)/1.8);