JavaScript:删除对象中的数组元素
此对象:JavaScript:删除对象中的数组元素,javascript,arrays,object,Javascript,Arrays,Object,此对象: var Betreiber = { "user1": [ { "desc": "60", "Id": 3473631702, "Status": "offline" }, { "desc": "61", "Id": 3473631703, "Status": "offline" }
var Betreiber = {
"user1": [
{
"desc": "60",
"Id": 3473631702,
"Status": "offline"
},
{
"desc": "61",
"Id": 3473631703,
"Status": "offline"
}
],
"user2": [
{
"desc": "62",
"Id": 963346121,
"Status": "offline"
},
{
"desc": "63",
"Id": 963346122,
"Status": "offline"
}
],
"user3": [
{
"desc": "64",
"Id": 972878784
},
{
"desc": "65",
"Id": 3473631706,
"Status": "offline"
}
]
}
我的代码:
var anlagen = [963346121, 963346122];
for(var users in Betreiber) {
for(var k=0;k<anlagen.length; k++) {
for(var ids in Betreiber[users]) {
if(anlagen[k] != Betreiber[users][ids].Id ){
delete Betreiber[users][ids];
}
}
}
if(Betreiber[users].length === 0) {
delete Betreiber[users];
}
}
var anlagen=[963346121963346122];
for(Betreiber中的var用户){
对于(var k=0;k我想这就是你想要的:
var-Betreiber={
“用户1”:[{
“描述”:“60”,
“Id”:3473631702,
“状态”:“脱机”
},
{
“描述”:“61”,
“Id”:3473631703,
“状态”:“脱机”
}
],
“用户2”:[{
“描述”:“62”,
“Id”:963346121,
“状态”:“脱机”
},
{
“描述”:“63”,
“Id”:963346122,
“状态”:“脱机”
}
],
“用户3”:[{
“描述”:“64”,
“Id”:972878784
},
{
“描述”:“65”,
“Id”:3473631706,
“状态”:“脱机”
}
]
};
var anlagen=[963346121963346122];
Object.keys(Betreiber.forEach)(key=>{
Betreiber[key]=Betreiber[key]。筛选器(项=>{
返回anlagen.indexOf(item.Id)!=-1;
});
如果(!Betreiber[key].length){
删除Betreiber[键];
}
});
console.log(Betreiber);
我想这就是您想要的:
var-Betreiber={
“用户1”:[{
“描述”:“60”,
“Id”:3473631702,
“状态”:“脱机”
},
{
“描述”:“61”,
“Id”:3473631703,
“状态”:“脱机”
}
],
“用户2”:[{
“描述”:“62”,
“Id”:963346121,
“状态”:“脱机”
},
{
“描述”:“63”,
“Id”:963346122,
“状态”:“脱机”
}
],
“用户3”:[{
“描述”:“64”,
“Id”:972878784
},
{
“描述”:“65”,
“Id”:3473631706,
“状态”:“脱机”
}
]
};
var anlagen=[963346121963346122];
Object.keys(Betreiber.forEach)(key=>{
Betreiber[key]=Betreiber[key]。筛选器(项=>{
返回anlagen.indexOf(item.Id)!=-1;
});
如果(!Betreiber[key].length){
删除Betreiber[键];
}
});
console.log(Betreiber);
var-anlagen=[963346121963346122];
for(Betreiber中的var用户){
对于(变量k=0,len=anlagen.length;kvar anlagen=[963346121963346122];
for(Betreiber中的var用户){
对于(变量k=0,len=anlagen.length;k
我已经尝试了,拼接和删除方法…由于for循环,我无法让它工作。为什么不直接获取要保留的项目?我已经尝试了,拼接和删除方法…由于for循环,我无法让它工作。为什么不直接获取要保留的项目?添加if(Betreiber[key].length==0){delete Betreiber[key];}
非常好用,谢谢。@tipsfedora-刚刚用代码更新了我的答案。添加if(Betreiber[key].length==0){delete Betreiber[key];}
非常好用,谢谢。@tipsfedora-刚刚用代码更新了我的答案。
var anlagen = [963346121, 963346122];
for(var user in Betreiber) {
for (var k = 0, len = anlagen.length; k < len; k++) {
for (var j = 0, _len = Betreiber[user].length; j < _len; j++) {
if (anlagen[k] != Betreiber[user][j].Id ) {
Betreiber[user].splice(j, 1);
}
}
}
if (Betreiber[user].length === 0) {
delete Betreiber[user];
}
}