js遍历json数组,求大神指导(2)
varjson1=[{"age":5,"num":2,"people":3,"class":9},{"age":1,"num":3,"people":2,"class":...
var json1=[{"age":5,"num":2,"people":3,"class":9},{"age":1,"num":3,"people":2,"class":8},{"age":4,"num":6,"people":5,"class":3}];
var json2=[{"field":"age","typle":"sum","title":"ss"},{"field":"num","typle":"sum","title":"ss"},
{"field":"people","typle":"sum","title":"ss"},{"field":"class","typle":"nosum","title":"ss"}];
如上json1、json2两个数组,拿json1里age、num等属性去json2里遍历,
若json2里field的值和json1的属性相等并且其typle的值为num,就计算json1里该属性的和
最终再拼接成下面的样子
var json3=[{"name":"求和","age":10,"num":11,"people":10}];
注:json1里属性未知不光有age、num、people、class只是举个例子
//没人会? 求大神帮忙写下
json3也是一个json数组 展开
var json2=[{"field":"age","typle":"sum","title":"ss"},{"field":"num","typle":"sum","title":"ss"},
{"field":"people","typle":"sum","title":"ss"},{"field":"class","typle":"nosum","title":"ss"}];
如上json1、json2两个数组,拿json1里age、num等属性去json2里遍历,
若json2里field的值和json1的属性相等并且其typle的值为num,就计算json1里该属性的和
最终再拼接成下面的样子
var json3=[{"name":"求和","age":10,"num":11,"people":10}];
注:json1里属性未知不光有age、num、people、class只是举个例子
//没人会? 求大神帮忙写下
json3也是一个json数组 展开
1个回答
展开全部
<script src="http://vod.xunlei.com/library/jquery-1.7.2.min.js"></script>
<script>
var json1=[{"age":5,"num":2,"people":3,"class":9},{"age":1,"num":3,"people":2,"class":8},{"age":4,"num":6,"people":5,"class":3}];
var json2=[{"field":"age","typle":"sum","title":"ss"},{"field":"num","typle":"sum","title":"ss"},{"field":"people","typle":"sum","title":"ss"},{"field":"class","typle":"nosum","title":"ss"}];
//如上json1、json2两个数组,拿json1里age、num等属性去json2里遍历,若json2里field的值和json1的属性相等并且其typle的值为num,就计算json1里该属性的和最终再拼接成下面的样子
//var json3=[{"name":"求和","age":10,"num":11,"people":10}];
function test(json1,json2){
var result=[],resultJson={"name":"求和"};
var getSum=function(field){
var sum=0;
for(var s in json1){
sum+=json1[s][field]||0;
}
return sum;
}
for(var p in json2){
if(json2[p]["typle"]=="sum"){
$.extend(resultJson,$.parseJSON('{\"'+ json2[p]["field"] + '\":' + getSum(json2[p]["field"]) + '}'));
}
}
result.push(resultJson);
return result;
}
json3=test(json1,json2);
//检查一下结果
temp=""
for (var t in json3[0]){
temp+=t + "=" + json3[0][t] +",";
}
alert(temp.slice(0,-1)); //显示:name=求和,age=10,num=11,people=10
</script>
<script>
var json1=[{"age":5,"num":2,"people":3,"class":9},{"age":1,"num":3,"people":2,"class":8},{"age":4,"num":6,"people":5,"class":3}];
var json2=[{"field":"age","typle":"sum","title":"ss"},{"field":"num","typle":"sum","title":"ss"},{"field":"people","typle":"sum","title":"ss"},{"field":"class","typle":"nosum","title":"ss"}];
//如上json1、json2两个数组,拿json1里age、num等属性去json2里遍历,若json2里field的值和json1的属性相等并且其typle的值为num,就计算json1里该属性的和最终再拼接成下面的样子
//var json3=[{"name":"求和","age":10,"num":11,"people":10}];
function test(json1,json2){
var result=[],resultJson={"name":"求和"};
var getSum=function(field){
var sum=0;
for(var s in json1){
sum+=json1[s][field]||0;
}
return sum;
}
for(var p in json2){
if(json2[p]["typle"]=="sum"){
$.extend(resultJson,$.parseJSON('{\"'+ json2[p]["field"] + '\":' + getSum(json2[p]["field"]) + '}'));
}
}
result.push(resultJson);
return result;
}
json3=test(json1,json2);
//检查一下结果
temp=""
for (var t in json3[0]){
temp+=t + "=" + json3[0][t] +",";
}
alert(temp.slice(0,-1)); //显示:name=求和,age=10,num=11,people=10
</script>
追问
谢谢哈
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询