Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对javascript中的数组求和_Javascript_Arrays_Function - Fatal编程技术网

如何对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
函数()@curiousdev
reduce
可以在这里工作。但是,数据是嵌套的,所以有点复杂。@JosephCho它是在假定
environment['4*]
始终存在的情况下工作的,并且假定
environment['4*]
是有效的。是的,这是正确的。使用数组的
。reduce
函数()@curiousdev
reduce
可以在这里工作。但是,数据是嵌套的,所以有点复杂。@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
),它返回了一个不正确的值;理论上,我确实认为你的也正确,但当我(错误地)测试它时,我感到惊讶。