Javascript 循环遍历对象,其中一些键具有相同的重复名称
我在一个代码库上工作,令人恼火的是,我正在遍历的对象有点凌乱 基本上,在我的对象中。。。我打算查找页面浏览量节点,,但前提是它包含一个数据数组 下面是一个数据示例:Javascript 循环遍历对象,其中一些键具有相同的重复名称,javascript,arrays,object,for-loop,dom,Javascript,Arrays,Object,For Loop,Dom,我在一个代码库上工作,令人恼火的是,我正在遍历的对象有点凌乱 基本上,在我的对象中。。。我打算查找页面浏览量节点,,但前提是它包含一个数据数组 下面是一个数据示例: data = [ { event: "click", dimension: 123, cart: { pageviews:[] } }, { event: "scroll",
data = [
{
event: "click",
dimension: 123,
cart: {
pageviews:[]
}
},
{
event: "scroll",
dimension: 456,
cart: {
pageviews:[]
}
},
{
event: "onload",
dimension: 789,
},
{
event: "click",
dimension: 'xyz',
cart: {
pageviews:[
{data: 1},
{data: 2},
{data: 3},
]
}
}
];
如您所见,该对象包含三次“页面视图”引用
在下面的代码中,如果pageviews
包含数据数组,我想隐藏DOM元素
但是,我的DOM元素并不隐藏。所以我认为它不够聪明
只有当对象包含带有数据的页面视图时,访问“页面视图”或运行命令的最佳方式是什么?
let searchURL = new URLSearchParams(location.search);
if (searchURL.has("a" && "b" && "c"))
// Loop through data obj to find which object
for (let index = 0; index < data.length; index++) {
const dataNode = data[index];
// Check if loop contains node contains "cart"
if (dataNode.hasOwnProperty("cart")) {
// Check if "pageview" node exists
if (dataNode.cart.hasOwnProperty("pageview")) {
let resultsResponse = dataNode.cart.pageview;
if (resultsResponse.length >= 1) {
// THEN HIDE DOM ELEMENT
const bigBlockContainer = document.querySelector('.big-container');
bigBlockContainer.remove();
}
}
}
}
}
let searchURL=新的URLSearchParams(location.search);
if(searchURL.has(“a”&“b”&“c”))
//循环遍历数据对象以查找哪个对象
for(让index=0;index=1){
//然后隐藏DOM元素
const bigBlockContainer=document.querySelector('.big container');
bigBlockContainer.remove();
}
}
}
}
}
您可以使用函数,该函数将函数作为参数,并生成一个新数组,其中仅包含满足您传递的条件的项:
var interestingSubset = data.filter((item) => item.cart && item.cart.pageviews && item.cart.pageviews.length);
现在,如果您只想看看是否至少有一个项目符合您的标准,那么您可以这样做:
if (interestingSubset.length) {
//Remove item from DOM or do whatever you need to do
}
你能添加一个包含示例HTML的可测试示例吗?你可以尝试将所有
if
语句组合成一个。@Polywhill先生-我不认为我能…这是一个企业应用程序…我根本不使用HTML。就像我只是删除一个DOM元素一样..在数据上运行一个过滤器,只返回那些带有pag的语句eview.length>0
首先,您只处理相关数据,然后处理您需要处理的内容o如果(在任何时候)数据中的任何项目具有购物车页面视图大小,是否删除该元素?