Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        6年前关闭。
                    
                
        

下面是一段工作代码。 “ = true”部分使我感到困惑。我认为这是正在发生的事情。

1-创建空数组。
2-选择选定的列表项(目标)并循环。
3-如果目标列表项的类属性不在数组中,则输入if块。
4-添加目标列表项的类属性并添加它们
到数组。

我的理解是javascript使用“ push”,jquery使用“ add”
将项目插入数组。下面的代码不使用推入或添加。

var foo = [];
$($targets).each(function(i) {
    if (!foo[$(this).attr('class')]) {
        foo[$(this).attr('class')] = true;
    }
});

最佳答案

代码有缺陷,如果要使用字符串作为键,则应使用对象而不是数组:

var foo = {};


然后,尽管您可能想使用in运算符检查是否严格存在,但它检查对象中的键是否为伪造的:

$targets.each(function() {
  var klass = this.className; // cache, no need for jQuery
  // if `foo` doesn't have the key `klass` then add it
  if (! (klass in foo)) foo[klass] = true;
});

关于javascript - 此代码是否将类属性添加到foo数组? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19149987/

10-11 23:27
查看更多