【发布时间】:2021-06-28 03:35:22
【问题描述】:
我有一个类似于下面的对象,
let obj = {
"mode1":{
"pool_1":[
{ "id":115 },
],
"pool_2":[
{ "id":116 }
],
"pool_4":[
{ "id":117 }
],
},
"mode2":{
"pool_6":[
{ "id":122 }
]
},
"mode3":{
"pool_1":[
{ "id":123 }
]
},
"AWS":{
"cloud":[]
},
"Azure":{
"cloud":[]
}
}
let value_array = ["pool_1"];
这里,
第 1 步:我需要从 obj 中删除与 value_array 匹配的属性。例如,在上面的代码中, pool_1 应该从 mode1' and mode3 中删除`
第 2 步:需要检查obj 的所有键并将空键推入新数组。例如,在上面的代码中,mode3 应该被添加到一个新的数组中,比如["mode3"]
输出应该如下所示,
["mode3"]
因为,mode3 有空对象。
这在使用 for 循环时有效。但我需要使用一些简单的方法,如 Lodash 或 Es6 方法来实现这一点。任何帮助将不胜感激。
尝试如下,
for (var key in obj) {
for (var keys in obj[key]) {
value_array.forEach(function (item) {
if(keys == item){
console.log(key)
delete obj[key][keys]
}
console.log("ALL THE DETALS AFTER DELETE", obj)
});
}
}
【问题讨论】:
-
这能回答你的问题吗? omit nested properties with Lodash
-
尝试了同样的方法,但没有得到预期的答案。我需要将空键存储在单独的数组中
标签: javascript ecmascript-6 lodash