Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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_D3.js_Reduce - Fatal编程技术网

Javascript 获取多个数组中给定索引处所有元素的平均值

Javascript 获取多个数组中给定索引处所有元素的平均值,javascript,arrays,d3.js,reduce,Javascript,Arrays,D3.js,Reduce,我有大约300个数组,每个数组有100个x和y值的数组。我想得到300个数组的y值的100个平均值的数组。最好的方法是什么?我想我应该使用一些减少,但我有点迷路了。 以下是我到目前为止的情况: let yval = cohort.map((d, i) => { let bin = d3.nest() .key(function(d) { return i; }) .rollup(function(d) {

我有大约300个数组,每个数组有100个x和y值的数组。我想得到300个数组的y值的100个平均值的数组。最好的方法是什么?我想我应该使用一些减少,但我有点迷路了。 以下是我到目前为止的情况:

let yval = cohort.map((d, i) => {
    let bin = d3.nest()
        .key(function(d) {
            return i;
        })
        .rollup(function(d) {
            return d;
        })
        .entries(d);

    return bin;
});

console.log(yval);

“队列”是一组对象。我想隔离每个队列对象中的“bin”数组。每一个都有117个元素长。对于每个箱子[i],我想从所有箱子中得到[i]的平均值。我想基本上把300个117的数组变成一个117的数组。任何帮助都将不胜感激

关于如何计算JS中数组的平均值,已经有了答案:

您可以使用该答案中定义的函数,并将其映射到数组中。例如:

var result = cohort.map(cohortElement => cohortElement.bin).map(/*function declared in other StackOverflow answer*/)

要实现预期用途,请选择下面的ForEach和array reduce方法

  • 首先使用array.ForEach方法为300个数组创建循环

  • 在每个数组的内部循环中,我使用reduce来查找平均值

  • var sampleArr=[];//用于测试的样本阵列
    var meanList=[];//最终平均值列表数组
    对于(变量i=0;i<301;i++){
    sampleArr[i]=[]
    对于(var j=0;j<2;j++){
    样本arr[i].推({
    x:我,
    y:i+1
    })
    }
    }
    getMean=arr=>{
    arr.forEach(e=>{
    设sum=e.reduce(函数(a,c){
    控制台日志(a,c);
    返回a.y+c.y;
    });
    平均值列表推送(总和/长度);
    });
    };
    getMean(样本数)
    
    console.log(meanslist)D3已经有一个名为的方法,该方法:

    返回给定数字数组的平均值

    因此,如果要获得每个内部数组的平均值,只需以下内容即可(其中
    data
    是原始数组):

    下面是一个基本演示:

    var数据=[
    [1, 2, 3, 4, 5],
    [10, 20, 30, 40, 50],
    [100, 200, 300, 400, 500]
    ];
    var arrayOfMeans=data.map(d=>d3.mean(d));
    console.log(arrayOfMeans)

    嘿,谢谢你的帮助!数据结构有点奇怪。我在一个单独的可视化中使用队列,因此我提取了该数据的一个子集用于此。现在我正在测试一些选项,但我会做一些返工。再次感谢!
    var arrayOfMeans = data.map(d => d3.mean(d));