如何对javascript中的数组求和
我现在有这个功能如何对javascript中的数组求和,javascript,arrays,function,Javascript,Arrays,Function,我现在有这个功能 function radius(d) { return d.values[0].environment["4*"]; console.log(d); } 但是,我希望能够平均每个文档的所有4*环境值(下面的示例中有6个),并将其作为半径返回。我是JS新手,所以不知道怎么做。你能帮忙吗。下面是数据的结构 如果不测试整个数据结构,就很难准确回答问题。根据您提供的信息,这应该是可行的: function radius(d) { let sum =
function radius(d) {
return d.values[0].environment["4*"];
console.log(d);
}
但是,我希望能够平均每个文档的所有4*环境值(下面的示例中有6个),并将其作为半径返回。我是JS新手,所以不知道怎么做。你能帮忙吗。下面是数据的结构
如果不测试整个数据结构,就很难准确回答问题。根据您提供的信息,这应该是可行的:
function radius(d) {
let sum = 0;
for (let i=0; i<d.length; i++) {
let num = parseInt(d[i].environment['4*']);
if (!isNaN(num)) sum += num;
}
return sum;
}
如果不测试整个数据结构,很难准确地回答这个问题。根据您提供的信息,这应该是可行的:
function radius(d) {
let sum = 0;
for (let i=0; i<d.length; i++) {
let num = parseInt(d[i].environment['4*']);
if (!isNaN(num)) sum += num;
}
return sum;
}
您可以使用reduce函数:
function radius(d) {
return d.values.reduce(function(avg, item, index, array) {
return avg + item.environtment['4*'] /array.length
},0)
}
您可以使用reduce函数:
function radius(d) {
return d.values.reduce(function(avg, item, index, array) {
return avg + item.environtment['4*'] /array.length
},0)
}
使用数组的
.reduce
函数()@curiousdevreduce
可以在这里工作。但是,数据是嵌套的,所以有点复杂。@JosephCho它是在假定environment['4*]
始终存在的情况下工作的,并且假定environment['4*]
是有效的。是的,这是正确的。使用数组的。reduce
函数()@curiousdevreduce
可以在这里工作。但是,数据是嵌套的,所以有点复杂。@JosephCho它是在假定environment['4*]
始终存在的情况下工作的,并且假定environment['4*]
是有效的。是的,这是正确的除以数组的长度是在错误的地方;它应该在reduce:d.values.reduce((平均值,项)=>avg+项,0)/d.values.length之外代码>分区位于正确的位置。你的方式是(a+b)/2。我的方式是a/2+b/2。啊,我现在看到了我的错误:我运行了reduce((avg,item,arr)=>avg+item/arr.length)
(注意末尾的no,0
),它返回了一个不正确的值;理论上,我确实认为你的也正确,但当我(错误地)测试它时,我感到惊讶;它应该在reduce:d.values.reduce((平均值,项)=>avg+项,0)/d.values.length之外代码>分区位于正确的位置。你的方式是(a+b)/2。我的方式是a/2+b/2。啊,我现在看到了我的错误:我运行了reduce((avg,item,arr)=>avg+item/arr.length)
(注意末尾的no,0
),它返回了一个不正确的值;理论上,我确实认为你的也正确,但当我(错误地)测试它时,我感到惊讶。