繁体   English   中英

如何从对象数组中删除一个元素

[英]how to delete a element from the array of objects

这里我有对象数据数组,我需要从这个数据中删除基于值的元素,如果找到值则删除整个元素

 let value = "/unifiedconfig/config/agent/5197"; //if this found in json data i have delete complete element{"refURL":"/unifiedconfig/config/agent/5197","agentId":"1085","firstName":"Owen","lastName":"Harvey","userName":"oharvey"} var myjsonobj = { "refURL": "/unifiedconfig/config/agentteam/5022", "changeStamp": 12, "agentCount": 7, "description": "Cumulus Outbound Team", "name": "CumulusOutbound", "peripheral": { "id": 5000, "name": "CUCM_PG_1" }, "peripheralId": 5000, "supervisorCount": 1, "agents": [{ "agent": [{ "refURL": "/unifiedconfig/config/agent/5197", "agentId": "1085", "firstName": "Owen", "lastName": "Harvey", "userName": "oharvey" }, { "refURL": "/unifiedconfig/config/agent/5201", "agentId": "1320", "firstName": "Bruce", "lastName": "Wayne", "userName": "bwayne" }, { "refURL": "/unifiedconfig/config/agent/5202", "agentId": "1321", "firstName": "Peter", "lastName": "Parker", "userName": "pparker" }, { "refURL": "/unifiedconfig/config/agent/5203", "agentId": "1322", "firstName": "Tony", "lastName": "Stark", "userName": "tstark" }, { "refURL": "/unifiedconfig/config/agent/5204", "agentId": "1323", "firstName": "Steve", "lastName": "Rogers", "userName": "srogers" }, { "refURL": "/unifiedconfig/config/agent/5205", "agentId": "1324", "firstName": "Bruce", "lastName": "Banner", "userName": "bbanner" }, { "refURL": "/unifiedconfig/config/agent/5231", "agentId": "1086", "firstName": "Annika", "lastName": "Hamilton", "userName": "annika" }, { "refURL": "/unifiedconfig/config/agent/5118", "agentId": "1317", "firstName": "Donald", "lastName": "Duckling", "userName": "dduck" }] }], "supervisors": [{ "supervisor": [{ "refURL": "/unifiedconfig/config/agent/5174", "agentId": "1082", "firstName": "Rick", "lastName": "Barrows", "userName": "rbarrows@dcloud.cisco.com" }] }] } Object.keys(myjsonobj).forEach(function(key) { if (myjsonobj[key] === value) { delete myjsonobj[key]; } }); console.log(JSON.stringify(myjsonobj));

这应该可以解决问题:

 var myjsonobj = {"refURL": "/unifiedconfig/config/agentteam/5022","changeStamp": 12,"agentCount": 7,"description": "Cumulus Outbound Team","name": "CumulusOutbound","peripheral": {"id": 5000,"name": "CUCM_PG_1"},"peripheralId": 5000,"supervisorCount": 1,"agents": [{"agent": [{"refURL": "/unifiedconfig/config/agent/5197","agentId": "1085","firstName": "Owen","lastName": "Harvey","userName": "oharvey"}, {"refURL": "/unifiedconfig/config/agent/5201","agentId": "1320","firstName": "Bruce","lastName": "Wayne","userName": "bwayne"}, {"refURL": "/unifiedconfig/config/agent/5202","agentId": "1321","firstName": "Peter","lastName": "Parker","userName": "pparker"}, {"refURL": "/unifiedconfig/config/agent/5203","agentId": "1322","firstName": "Tony","lastName": "Stark","userName": "tstark"}, {"refURL": "/unifiedconfig/config/agent/5204","agentId": "1323","firstName": "Steve","lastName": "Rogers","userName": "srogers"}, {"refURL": "/unifiedconfig/config/agent/5205","agentId": "1324","firstName": "Bruce","lastName": "Banner","userName": "bbanner"}, {"refURL": "/unifiedconfig/config/agent/5231","agentId": "1086","firstName": "Annika","lastName": "Hamilton","userName": "annika"}, {"refURL": "/unifiedconfig/config/agent/5118","agentId": "1317","firstName": "Donald","lastName": "Duckling","userName": "dduck"}]}],"supervisors": [{"supervisor": [{"refURL": "/unifiedconfig/config/agent/5174","agentId": "1082","firstName": "Rick","lastName": "Barrows","userName": "rbarrows@dcloud.cisco.com"}]}]} let value = "/unifiedconfig/config/agent/5197"; myjsonobj.agents[0].agent=myjsonobj.agents[0].agent.filter(a=>a.refURL;=value). console.log(myjsonobj)

从您的数据来看,很明显目标值只能在agent元素的refURL属性中找到。 所以这就是我在上面的脚本中所关注的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM