按照你的要求,求满足多个条件的相同属性的对象之和的Javascript程序如下
<script type=text/javascript>
var obj = [{source: "HTML",target: "JAVASCRIPT",value: 11},
{source: "HTML",target: "CSS",value: 22},
{source: "HTML",target: "JAVA",value: 33},
{source: "HTML",target: "JAVASCRIPT",value: 44}]
var result=[]
var flag=true
result.push(obj[0])
for(var i=1i<obj.lengthi++){
flag=true
for(var j=0j<result.lengthj++){
if(obj[i].source==result[j].source &&obj[i].target==result[j].target){
flag=false
result[j].value=obj[i].value+result[j].value
}
}
if(flag==true)
result.push(obj[i])
}
document.write(JSON.stringify(result))
</script>
源代码
如果这个数组不是json的话,就可以for(var i=0i <array.lengthi++{}来获取数组中的每一个对象,然后在{}里添加:if(typeof array[i] == "object){
for(var key in array[i]){
//这里的array[i][key]就能遍历array数组里的对象的属性值了,key就是属性名,
}
}
如果最初的array也是个对象的话,就把for(var i=0i <array.lengthi++{}改成for(var i in array){}就行了