【发布时间】:2018-10-06 09:05:19
【问题描述】:
我一直在进行一些迭代以获得一定数量的值。
$.each(Obj, function(k,v){
$.each(v, function(j,l){
$.each(l, function(r,s){
if(l.hasOwnProperty(r) && typeof s === 'object'){
}
})
})
})
在这段代码中,您会看到我正在迭代一个名为“Obj”的对象。在它里面我们会有一些数组和对象,因为它是一个非常复杂的结构。但是,让我们停止喋喋不休。一旦我们到达这部分......
$.each(l, function(r,s){
if(l.hasOwnProperty(r) && typeof s === 'object'){
}
})
你会看到我们有一个条件。在那个条件下,我正在检查那些 typeof 值为“object”的属性“r”。所以,如果我在我的条件中对“r”进行控制台检查,我实际上会看到那些特定的属性。
所以,事情就是这样。我为什么要这样做?好吧,我正在构建一个变量,该变量将仅存储那些具有“object”作为 typeof 值的子属性的“l”元素。这实际上是可行的,但问题是,就我的目的而言,我不仅需要此变量按预期工作,而且还需要仅存储具有 MORE THAN ONE 属性并将 'object' 作为 typeof 值的元素。
那么,让我们考虑一下这种情况:
如果我有两个像下面这样的对象...
Obj1: [{"key":"value", "key":"value", "key":"[{"key":"value", "key":"value"}, { "key":"value", "key":"value"}]"}]
Obj1: [{"key":"value", "key":"value", "key":"[{"key":"value", "key":"value"}, { "key":"value", "key":"value"}]", "key":"[{"key":"value", "key":"value"}, { "key":"value", "key":"value"}]"}]
我希望我的变量只存储第二个,因为它有 2 个值,其中包含对象。
所以,在我的条件中,我想使用某种逻辑,不仅让我知道我的“l”元素内部是否有一个对象,而且我有多少个对象,以及它们是否'小于一个,那么我的控制台日志不应该显示它们。
希望它足够清楚。
【问题讨论】:
标签: javascript arrays object iteration each