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

Javascript 对象数组中字段的平均值

Javascript 对象数组中字段的平均值,javascript,Javascript,我有以下对象数组: [ { items: { "1554038371930_ajhnms9ft" : { "mark" : 5 }, "1554038905938_le34li2cg" : { "mark" : 2 }, "1554039157958_kwab8rj5f" : {

我有以下对象数组:

[
    {
        items: {
            "1554038371930_ajhnms9ft" : {
                "mark" : 5
            },
            "1554038905938_le34li2cg" : {
                "mark" : 2
            },
            "1554039157958_kwab8rj5f" : {
                "mark" : 4
            },
            "1554039174126_p47ugwkbv" : {
                "mark" : 1
            }
        }
    },
    {
        items: {
            "1554038371930_ajhnms9ft" : {
                "mark" : 1
            },
            "1554038905938_le34li2cg" : {
                "mark" : 5
            },
            "1554039157958_kwab8rj5f" : {
                "mark" : 5
            },
            "1554039174126_p47ugwkbv" : {
                "mark" : 2
            }
        }
    },
    {
        items: {
            "1554038371930_ajhnms9ft" : {
                "mark" : 4
            },
            "1554038905938_le34li2cg" : {
                "mark" : 3
            },
            "1554039157958_kwab8rj5f" : {
                "mark" : 3
            },
            "1554039174126_p47ugwkbv" : {
                "mark" : 4
            }
        }
    },
    {
        items: {
            "1554038371930_ajhnms9ft" : {
                "mark" : 1
            },
            "1554038905938_le34li2cg" : {
                "mark" : 2
            },
            "1554039157958_kwab8rj5f" : {
                "mark" : 5
            },
            "1554039174126_p47ugwkbv" : {
                "mark" : 4
            }
        }
    }
]
我想得到chack项的平均值,结果如下:

{
    items: {
        "1554038371930_ajhnms9ft" : {
            "mark" : 2.75
        },
        "1554038905938_le34li2cg" : {
            "mark" : 3
        },
        "1554039157958_kwab8rj5f" : {
            "mark" : 4.25
        },
        "1554039174126_p47ugwkbv" : {
            "mark" : 2.75
        }
    }
}

实现这一点的最佳方法是什么?

创建一个对象以包含最终结果,迭代项目并获得平均值。 例如:


这将适用于您,对数组和对象键使用一些循环:

var itemsArr=[{ 项目:{ 1554038371930_ajhnms9ft:{ 马克:5分 }, 1554038905938_le34li2cg:{ 马克:2 }, 1554039157958_kwab8rj5f:{ 马克:4 }, 1554039174126_p47ugwkbv:{ 马克:1 } } }, { 项目:{ 1554038371930_ajhnms9ft:{ 马克:1 }, 1554038905938_le34li2cg:{ 马克:5分 }, 1554039157958_kwab8rj5f:{ 马克:5分 }, 1554039174126_p47ugwkbv:{ 马克:2 } } }, { 项目:{ 1554038371930_ajhnms9ft:{ 马克:4 }, 1554038905938_le34li2cg:{ 马克:3 }, 1554039157958_kwab8rj5f:{ 马克:3 }, 1554039174126_p47ugwkbv:{ 马克:4 } } }, { 项目:{ 1554038371930_ajhnms9ft:{ 马克:1 }, 1554038905938_le34li2cg:{ 马克:2 }, 1554039157958_kwab8rj5f:{ 马克:5分 }, 1554039174126_p47ugwkbv:{ 马克:4 } } } ]; var tempObj={}; itemsArr.forEachitemsObj=>{ 设items=itemsObj.items; Object.keysitems.forEachkey=>{ iftempObj[键]{ tempObj[key].mark+=items[key].mark; tempObj[key].count++; }否则{ tempObj[key]={ 标记:项[键]。标记, 计数:1 }; } }; }; Object.keystempObj.forEachkey=>{ tempObj[key]。mark=tempObj[key]。mark/tempObj[key]。计数; 删除tempObj[key].count; };
console.logtempObj;您还应该发布一些代码,显示您尝试过但未成功的内容。否则,您将获得否决票或关闭标志。请向我们展示您迄今为止尝试过的代码。
const items = {};
for (let i = 0; i < arr.length; i++) {
  const keys = Object.keys(arr[i].items)
  for (let j = 0; j < keys.length; j++) {
    items[keys[j]] = items[keys[j]] === undefined ? 
      arr[i].items[keys[j]].mark : 
      (items[keys[j]] + arr[i].items[keys[j]].mark) / 2;
  }
}