如何将数组的每个元素变成平方根并将它们相加
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)
我刚开始学习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)