Javascript 数组中值的平均值

Javascript 数组中值的平均值,javascript,arrays,json,Javascript,Arrays,Json,JSON: [{"id":"1","user":"001","answer":"1,1,3,2,2,1,3,2"}, {"id":"2","user":"002","answer":"2,3,3,2,1,1,3,2"}, {"id":"3","user":"003","answer":"3,5,3,5,3,1,3,2"}] JavaScript: jQuery.ajax({ url: "file.json", type: "POST", dataType: "json"

JSON:

[{"id":"1","user":"001","answer":"1,1,3,2,2,1,3,2"},
{"id":"2","user":"002","answer":"2,3,3,2,1,1,3,2"},
{"id":"3","user":"003","answer":"3,5,3,5,3,1,3,2"}]
JavaScript:

jQuery.ajax({
    url: "file.json",
    type: "POST",
    dataType: "json",
    async: false,
    success: function (data) {
    var arr = [];
    for (i = 0; i < data.length; i++) { 
        arr.push(data[i].answer);
    }
    console.log(arr);
});
const arrAvg=arr=>arr.reduce((a,b)=>a+b,0)/arr.length;
log(arrAvg([1,2,3,4,5])您可以使用:


工作示例:

let data=[{“id”:“1”,“user”:“001”,“answer”:“1,1,3,2,2,1,3,2”},
{“id”:“2”,“user”:“002”,“answer”:“2,3,3,2,1,1,3,2”},
{“id”:“3”,“user”:“003”,“answer”:“3,5,3,3,1,3,2”}];
让result=data.map(o=>{
/*使用分隔符将字符串拆分为数组*/
设a=o[“答案”]。拆分(“,”);
/*
*首先使用.reduce()和
*然后除以数组元素数。
*/
返回a.reduce((a,c)=>(数字(c)+a),0)/a.length;
});

控制台日志(结果)您得到的是
答案
,但现在需要用逗号将其拆分并将其解析为一个数字。这为每个
答案提供了一个数组,现在您只需对每个答案进行迭代并添加数字,然后将其除以计数(即数组长度)即可计算平均值

注意:答案中的值是字符串,因此在将它们相加之前,请确保将它们转换为数字,否则将它们作为字符相加

var data=[{“id”:“1”,“user”:“001”,“answer”:“1,1,3,2,2,1,3,2”},
{“id”:“2”,“user”:“002”,“answer”:“2,3,3,2,1,1,3,2”},
{“id”:“3”,“user”:“003”,“answer”:“3,5,3,3,1,3,2”}]
var-arr=[];
对于(变量i=0;i控制台日志(arr)
答案创建一个新数组,然后将所有值相加并除以其大小
var res=[{
“id”:“1”,
“用户”:“001”,
回答:“1,1,3,2,2,1,3,2”
},
{
“id”:“2”,
“用户”:“002”,
回答:“2,3,3,2,1,1,3,2”
},
{
“id”:“3”,
“用户”:“003”,
回答:“3,5,3,5,3,1,3,2”
}
];
res.forEach(功能(项目){
//从字符串创建数组
var imtArray=item.answer.split(',');
//对元素求和
var avg=imtArray.reduce(函数(p,q){
//将字符串转换为数字
return+p++q
})
console.log(平均/imtArray.length)

})
您是如何尝试的?我们能看到一个尝试吗?我正在做一个拆分,用一个each,然后再次放入数组,数组返回到前面,而不是像[“123”、“123456”、“123456789”这样的数字。我不认为发布这篇文章有用:/你能分享输入和输出吗?你得到像这样的数字的原因是你在添加字符串,所以它们在彼此旁边添加相似的字符。在数学上把它们作为值添加,首先需要把它们转换成数字。我会考虑显示你的帖子中的代码非常有用。它不需要是正确的,但它表明你确实尝试了一些东西,而且很可能使目标更加明确。除非我没有误解你的问题,有些回答者似乎有误解,尽管答案中有一些非常漂亮的代码。认真的,非常感谢!我的头发和健康都因此而失去了。上帝保佑你!对于2018年制造的东西来说,这真是一个不必要的复杂答案。它还提供了许多不良做法,例如使用
var
@Treycos 2018与答案有什么关系?答案是基于这个问题。如果你觉得这是“不必要的复杂”,你有一个更好的答案,为什么你不把它贴出来,而不是在将近一年后对一个正确的、被接受的答案投否决票呢。从什么时候开始,使用
var
是一种糟糕的做法?如果正确使用,
var
没有什么错。这个答案是使用5年前的JavaScript实践编写的。为什么投票会以公布答案的日期为基础?使用
var
在开始用JS编写代码时是一种非常糟糕的做法,因为它们不考虑任何范围,并且与全局变量等价,无论它们在代码中声明在哪里。此外,变量名称使代码无法读取。是的,我有一个更好的答案,就在下面,几行,易读,清晰,这是正确的答案。如果你真的关心从JS开始的开发人员,我建议删除你的。@Treycos你有没有注意到下面的答案是在我之前几分钟发布的,但不是公认的答案?这是有原因的。有时,最短的答案不是问题的正确答案,因为它可能是一个家庭作业,老师希望学生学习基本知识,如循环和条件。您对globals和
var
的评论过于笼统。我们知道何时使用,何时不使用。同样,答案是基于问题的,所以在评论之前请先理解。这不是一个通用的答案,也不是一个如何编码的指南。有一个详细的解释可以学习。
2,3,3,3,2,1,3,2