如何将数组的每个元素变成平方根并将它们相加

How to turn each element of array into a square root and sum them up

我刚开始学习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();

由于 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);

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

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

Array.prototype.map function is the standard way to transmogrify the elements of an array into a (new) modified array, and Array.prototype.reduce 用于将结果数组折叠成其总和。

如果你不能处理 ES2015 语法,换一个更好的浏览器,或者使用这个:

function sumRoots(array) {
    return array.map(Math.sqrt)
                .reduce(function(a, b) {
                    return a + b;
                }, 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();

是你要找的吗?

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

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

in each iteration a =return value.

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

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