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