我有这个功能来获取列表对象
列表对象中的每个条目都包含一个列出项目的对象
其中一项是名为not_visible
的密钥。
我想从列表对象中删除该项条目。
我曾经想过要像贝娄那样做,但是因为value
而无法在子forEach中访问。
我已经包含了一个列表对象的片段。
任何指导将不胜感激。
getListsObjectByNameItemVisibility: function() {
var lists = listsObjectByName(this);
Object.entries(lists).forEach(
([key, value]) => {
Object.entries(value['list_items']).forEach(
([subKey, subValue]) => {
if(subValue['not_visible'] === false){
}
}
);
}
);
return list;
},
答案 0 :(得分:1)
也许这是一个更好的解决方案,但这就是我会这样做,只是搜索删除的内容,然后删除(在Javascript中删除idk但在同一列表中删除for循环中的项目通常会变坏)< / p>
itemsToRemove = []
lists.list_items.forEach(function(item, index) {
if(!item.not_visible) {
itemsToRemove.push(item);
}
});
itemsToRemove.forEach(function(item, index) {
const itemIndex = lists.list_items.indexOf(item);
lists.list_items.splice(itemIndex, 1);
});
答案 1 :(得分:0)
这是我的解决方案。
对于lists
对象中的每个条目,
如果该项目包含项目的子列表,则向后循环并检查
能见度属性。
如果属性为true,则从对象中删除。
并返回不包含隐藏项的对象。
getListsObjectByNameItemVisability: function() {
var lists = listsObjectByName(this);
Object.entries(lists).forEach(
([key, value]) => {
for( var i = value.list_items.length-1; i >= 0; i-- ) {
if(value.list_items[i]['not_visible']){
delete value.list_items[i];
}
}
}
);
return lists;
},