JS 遍历数组对象,求满足多个条件的相同属性的对象之和 (谢谢)

varobj=[{source:"HTML",target:"JAVASCRIPT",value:11},{source:"HTML",target:"CSS",valu... 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
}
];

又这样一组数组对象,我想通过遍历得到一个新的数组对象。同时满足 Source 相同和Target 相同的 value 进行求和。
希望得到的新数组对象如下。
console.log(result)
result = [
{
source: "HTML",
target: "JAVASCRIPT",
value: 55
},
{
source: "HTML",
target: "CSS",
value: 22
},
{
source: "HTML",
target: "JAVA",
value: 33
},
];

谢谢。
展开
 我来答
紫薇参星
科技发烧友

2019-06-12 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3506万
展开全部

按照你的要求,求满足多个条件的相同属性的对象之和的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=1;i<obj.length;i++){

flag=true;

for(var j=0;j<result.length;j++){

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>

源代码

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式