如何在javascript的新数组中使用相同appName从两个不同的数组生成push元素
这是两个包含一些数据的数组如何在javascript的新数组中使用相同appName从两个不同的数组生成push元素,javascript,arrays,conditional-statements,Javascript,Arrays,Conditional Statements,这是两个包含一些数据的数组 var z = [ { appId: "1", appName: "CapLogix", envId: "970", envName: "UAT4" }, { appId: "1", appName: "CapLogix", envId: "970", envName: "UAT4" }, { appId: "1", appName: "CapLogix", e
var z = [
{
appId: "1",
appName: "CapLogix",
envId: "970",
envName: "UAT4"
},
{
appId: "1",
appName: "CapLogix",
envId: "970",
envName: "UAT4"
},
{
appId: "1",
appName: "CapLogix",
envId: "970",
envName: "UAT4"
},
{
appId: "21",
appName: "NOCC",
envId: "967",
envName: "UAT4"
},
{
appId: "21",
appName: "NOCC",
envId: "967",
envName: "UAT4"
},
{
appId: "21",
appName: "NOCC",
envId: "967",
envName: "UAT4"
},
{
appId: "71",
appName: "NETLOGIX",
envId: "972",
envName: "UAT4"
},
{
appId: "71",
appName: "NETLOGIX",
envId: "972",
envName: "UAT4"
},
{
appId: "71",
appName: "NETLOGIX",
envId: "972",
envName: "UAT4"
},
{
appId: "73",
appName: "ConfigBuilder",
envId: "971",
envName: "UAT4"
},
{
appId: "73",
appName: "ConfigBuilder",
envId: "971",
envName: "UAT4"
}
];
var y = [
{
appId: "1",
appName: "CapLogix",
envId: "959",
envName: "SIT-4"
},
{
appId: "1",
appName: "CapLogix",
envId: "959",
envName: "SIT-4"
},
{
appId: "21",
appName: "NOCC",
envId: "965",
envName: "SIT-4"
},
{
appId: "21",
appName: "NOCC",
envId: "965",
envName: "SIT-4"
},
{
appId: "71",
appName: "NETLOGIX",
envId: "958",
envName: "SIT-4"
},
{
appId: "71",
appName: "NETLOGIX",
envId: "958",
envName: "SIT-4"
},
{
appId: "73",
appName: "ConfigBuilder",
envId: "963",
envName: "SIT-4"
},
{
appId: "73",
appName: "ConfigBuilder",
envId: "963",
envName: "SIT-4"
}
];
这就是我到目前为止所尝试的。我需要一个新的数组,其中的元素具有相同的appName,从上述两个数组到一个新数组
newArray.filter((a)=> {
var key = a.appName;
if (!this[key]) {
this[key] = true;
return true;
}
}, Object.create(null))
var z=[{
appId:“1”,
appName:“CapLogix”,
嫉妒:“970”,
环境名称:“UAT4”
},
{
appId:“1”,
appName:“CapLogix”,
嫉妒:“970”,
环境名称:“UAT4”
},
{
appId:“1”,
appName:“CapLogix”,
嫉妒:“970”,
环境名称:“UAT4”
},
{
附件:“21”,
appName:“NOCC”,
envId:“967”,
环境名称:“UAT4”
},
{
附件:“21”,
appName:“NOCC”,
envId:“967”,
环境名称:“UAT4”
},
{
附件:“21”,
appName:“NOCC”,
envId:“967”,
环境名称:“UAT4”
},
{
appId:“71”,
appName:“NETLOGIX”,
嫉妒:“972”,
环境名称:“UAT4”
},
{
appId:“71”,
appName:“NETLOGIX”,
嫉妒:“972”,
环境名称:“UAT4”
},
{
appId:“71”,
appName:“NETLOGIX”,
嫉妒:“972”,
环境名称:“UAT4”
},
{
附件:“73”,
appName:“ConfigBuilder”,
嫉妒:“971”,
环境名称:“UAT4”
},
{
附件:“73”,
appName:“ConfigBuilder”,
嫉妒:“971”,
环境名称:“UAT4”
}
];
变量y=[{
appId:“1”,
appName:“CapLogix”,
嫉妒:“959”,
环境名称:“SIT-4”
},
{
appId:“1”,
appName:“CapLogix”,
嫉妒:“959”,
环境名称:“SIT-4”
},
{
附件:“21”,
appName:“NOCC”,
envId:“965”,
环境名称:“SIT-4”
},
{
附件:“21”,
appName:“NOCC”,
envId:“965”,
环境名称:“SIT-4”
},
{
appId:“71”,
appName:“NETLOGIX”,
envId:“958”,
环境名称:“SIT-4”
},
{
appId:“71”,
appName:“NETLOGIX”,
envId:“958”,
环境名称:“SIT-4”
},
{
附件:“73”,
appName:“ConfigBuilder”,
envId:“963”,
环境名称:“SIT-4”
},
{
附件:“73”,
appName:“ConfigBuilder”,
envId:“963”,
环境名称:“SIT-4”
}
];
用于(变量i在z中){
if(z[i].appName==“NOCC”){
document.getElementById(“sa”).innerHTML++=“{+”
“+”appId:“+z[i].appId+”
“+”appName:“+z[i].appName+”
“+”envId:“+z[i].envId+”
“+”
“}”+“
”+”
“+”,“+”
”,“”;
}
}
对于(y中的变量i){
如果(y[i].appName==“NOCC”){
document.getElementById(“as”).innerHTML++=“{+”
“+”appId:+y[i]。appId+“
”+”appName:+y[i]。appName+“
”+”envId:+y[i]。envId+“
”+”envName:+y[i]。envName+“
“+”+”
“}+”+”
“+”,“+”
”,“”;
}
}
检查代码段
这基本上是获取z
和y
中存在的值,然后创建一个新数组。然后过滤这个新数组以获得唯一值
如果在新数组中只需要唯一值,则可以添加下面的块
newArray.filter((a)=> {
var key = a.appName;
if (!this[key]) {
this[key] = true;
return true;
}
}, Object.create(null))
var z=[{
“appId”:“1”,
“appName”:“CapLogix”,
“envId”:“970”,
“环境名称”:“UAT4”,
},
{
“appId”:“1”,
“appName”:“CapLogix”,
“envId”:“970”,
“环境名称”:“UAT4”,
},
{
“appId”:“1”,
“appName”:“CapLogix”,
“envId”:“970”,
“环境名称”:“UAT4”,
},
{
“appId”:“21”,
“appName”:“NOCC”,
“envId”:“967”,
“环境名称”:“UAT4”,
},
{
“appId”:“21”,
“appName”:“NOCC”,
“envId”:“967”,
“环境名称”:“UAT4”,
},
{
“appId”:“21”,
“appName”:“NOCC”,
“envId”:“967”,
“环境名称”:“UAT4”,
},
{
“appId”:“71”,
“appName”:“NETLOGIX”,
“envId”:“972”,
“环境名称”:“UAT4”,
},
{
“appId”:“71”,
“appName”:“NETLOGIX”,
“envId”:“972”,
“环境名称”:“UAT4”,
},
{
“appId”:“71”,
“appName”:“NETLOGIX”,
“envId”:“972”,
“环境名称”:“UAT4”,
},
{
“appId”:“73”,
“appName”:“ConfigBuilder”,
“envId”:“971”,
“环境名称”:“UAT4”,
},
{
“appId”:“73”,
“appName”:“ConfigBuilder”,
“envId”:“971”,
“环境名称”:“UAT4”,
}
];
变量y=[{
“appId”:“1”,
“appName”:“CapLogix”,
“envId”:“959”,
“环境名称”:“SIT-4”,
},
{
“appId”:“1”,
“appName”:“CapLogix”,
“envId”:“959”,
“环境名称”:“SIT-4”,
},
{
“appId”:“21”,
“appName”:“NOCC”,
“envId”:“965”,
“环境名称”:“SIT-4”,
},
{
“appId”:“21”,
“appName”:“NOCC”,
“envId”:“965”,
“环境名称”:“SIT-4”,
},
{
“appId”:“71”,
“appName”:“NETLOGIX”,
“envId”:“958”,
“环境名称”:“SIT-4”,
},
{
“appId”:“71”,
“appName”:“NETLOGIX”,
“envId”:“958”,
“环境名称”:“SIT-4”,
},
{
“appId”:“73”,
“appName”:“ConfigBuilder”,
“envId”:“963”,
“环境名称”:“SIT-4”,
},
{
“appId”:“73”,
“appName”:“ConfigBuilder”,
“envId”:“963”,
“环境名称”:“SIT-4”,
}]
让newArray=z.filter(o1=>y.some(o2=>o1.appName===o2.appName));
设el='';
newArray.forEach(项=>{
el+=`id:${item.appId},应用程序名称:${item.appName}`;
});
document.getElementById('new')。innerHTML=el;
//console.log(newArray)
这是具有相同值的新数组
- 用于组合两个阵列
z.concat(y)
- 用于将所有具有匹配的
值的对象分组在各自的单独数组中。为了保留每个数组名,它们都应该在单个对象文本中返回appName
// result pattern { "CapLogix": [{ "appId": "1", "appName": "CapLogix", "envId": "970", "envName": "UAT4" }, {...}],...}
- 使用3来渲染:
- 每个数组名称的
,例如
CapLogix - 每个对象的
- 每个键/值对的
,例如“envName”:“UAT4”
- 用于将对象文字转换为数组数组
var z=[{appId:“1”,appName:“CapLogix”,envId:“970”,envName:“UAT4”},{appId:“CapLogix”,envId:“970”,envName:“UAT4”},{appId:“1”,appName:“CapLogix”,envId:“970”,envName:“UAT4”},{appId:“21”,appName:“NOCC”,envId:“967”,envName:“UAT4},{