我在该json文件中有一个json值三个电影的名字。 JSON数据是动态数据。我想计算在WinProbability
字段上的百分比。我想输出如下如何获取json的唯一值并在数组中求和另一个值?
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年奴隶'的总和应该是'3.47' – Mohammad
@Mhamhammad是的,我真的把虚拟值 –
你有任何代码? – Mohammad