如何将数组的每个元素转换为平方根并求它们

时间:2016-12-08 16:00:27

标签: javascript arrays math.sqrt

我刚刚开始学习JavaScript,我必须完成一项任务:

使用局部变量创建函数,将数组[0,1,2,3,4,5]的每个元素转换为sqrt并将它们相加。

我知道如何做一个函数然后我必须做一个循环 - 我有下一步的问题并使用Math.sqrt ...

function myFunction() {  
   var numbers = ['0','1', '2', '3', '4', '5'];
   var total = 1;

   for (var i = 1; i < numbers.length; i++) {
        var result = Math.sqrt(numbers[i++]) * +numbers[i];
        console.log(result);
   }
}

myFunction();

5 个答案:

答案 0 :(得分:4)

这个(ES2015语法)函数将对数字数组的平方根求和:

let sumRoots = array => array.map(Math.sqrt).reduce((a, b) => a + b, 0);

Array.prototype.map函数是将数组元素变换为(新)修改数组的标准方法,而Array.prototype.reduce用于将结果数组折叠为其总和。

如果您无法处理ES2015语法,请使用更好的浏览器,或者使用它:

function sumRoots(array) {
    return array.map(Math.sqrt)
                .reduce(function(a, b) {
                    return a + b;
                }, 0);
}

答案 1 :(得分:1)

由于OP处于学习如何使用JavaScript的早期阶段,我在下面提出了一种基于直接外部迭代的方法。虽然另一个答案提出了一种声明性方法,但OP首先要掌握基础知识似乎很重要。

function sumSquareRoots(numbers) {  
   var total = 0;
   for (var i = 0; i < numbers.length; i++) {
        var sqrt = Math.sqrt(numbers[i]);
        total = total + sqrt;
   }
   return total;
}

var numbers = ['0','1', '2', '3', '4', '5'];
var result = sumSquareRoots(numbers);
console.log(result);

答案 2 :(得分:0)

    function myFunction() {  
    var numbers = ['0','1', '2', '3', '4', '5'];
    var sum=0;
    for (var i = 0; i < numbers.length; i++) {
        sum += Math.sqrt(numbers[i]);
    }
    console.log(sum);
}

myFunction();

你在寻找吗?

答案 3 :(得分:0)

  var sum = ['0','1','2','3','4','5']
                                    .reduce((a,b)=>(a+Math.sqrt(b)),0);

为此,您必须了解reduce方法的内部机制。在此方法中,b的值始终是数组元素。

  

在每次迭代中a =返回值。

答案 4 :(得分:0)

我们可以简单地映射每个项目并将其乘以自己。

let numbers = ['0','1', '2', '3', '4', '5'];
let storeMultipliedIndex = []
numbers.map(item => storeMultipliedIndex.push(item * item))
console.log(storeMultipliedIndex)