【发布时间】:2016-07-24 15:04:33
【问题描述】:
我在那个 json 文件中有一个 json 值,三个电影的名称。 JSON 数据是动态数据。我想计算WinProbability 字段的百分比。我想要输出如下
movie_name = [ "12 Years a Slave", "American Hustle", "Captain"]
percentage = [ 3.47, 2.54, 4.22]
显示我的 JSON 文件
[
{
"ID":1,"Nominee":"12 Years a Slave","WinProbability":0.00,"WinType":"Win"
},
{
"ID":2,"Nominee":"12 Years a Slave","WinProbability":2.81,"WinType":"Win"
},
{
"ID":3,"Nominee":"12 Years a Slave","WinProbability":0.66,"WinType":"Nominated"
},
{
"ID":1,"Nominee":"American Hustle","WinProbability":1.62,"WinType":"Nominated"
},
{
"ID":2,"Nominee":"American Hustle","WinProbability":0.85,"WinType":"Win"
},
{
"ID":3,"Nominee":"American Hustle","WinProbability":0.07,"WinType":"Win"
},
{
"ID":1,"Nominee":"Captain Phillips","WinProbability":2.70,"WinType":"Nominated"
},
{
"ID":2,"Nominee":"Captain Phillips","WinProbability":0.00,"WinType":"Win"
},
{
"ID":3,"Nominee":"Captain Phillips","WinProbability":1.52,"WinType":"Win"
}
]
我的 jquery 代码
$(function() {
$.getJSON('movie.json', function(data) {
var movie_name = [],
percentage = [];
data.forEach(function(obj) {
if (movie_name.indexOf(obj.Nominee) == -1)
movie_name.push(obj.Nominee);
var lastIndex = movie_name.length - 1;
if (typeof percentage[lastIndex] == "undefined")
percentage.push(obj.WinProbability);
else
percentage[lastIndex] += obj.WinProbability;
});
console.log(movie_name);
console.log(percentage);
});
});
请帮助我如何做到这一点。我尝试为被提名人命名,但我不知道添加WinProbability 并计算百分比。
可以将数据更改为以下格式
{
"Win": [
{
"0": 3.47,
"name": "12 Years a Slave"
},{
"0": 2.54,
"name": "American Hustle"
},{
"0": 4.22,
"name": "Captain Phillips"
}
],
"Nominated":[
{
"0": 1.2,
"name": "12 Years a Slave"
},{
"0": 1,
"name": "American Hustle"
},{
"0": 1,
"name": "Captain Phillips"
}
]
}
【问题讨论】:
-
我认为你的计算是错误的。
12 Years a Slave的总和应该是3.47 -
@Mohammad 是的,我确实输入了虚拟值
-
你有代码吗?
-
@Mohammad 我更新了我的问题和惰性 jquery 代码
标签: javascript jquery arrays json object