2011-10-04 44 views
0

這個詞我有例如如何檢查數組中的

a=["and","a","in","&"] etc... 

蔭默認陣列得到一個動態文本,其中的IAM它轉換成一個陣列。例如。

b=["harry","in","connect"] 

我需要通過避免「在」數組中突出顯示。

所以哈利和連接將突出顯示,而不是在?

如何比較或檢查jQuery中的數組?

回答

2

可以使用$.inArray$.grep,即

var a=["and","a","in","&"]; 
var b=["harry","in","connect"]; 

var c = $.grep(b, function(n){ 
    return $.inArray(n,a) == -1; 
}); 

這將返回一個新的數組,僅包含在陣列中不存在的話a

這裏有一個小提琴:http://jsfiddle.net/kaFvw/

如果你需要它返回所有在陣列a PRESENT的單詞的數組,只是改變了==運營商!=

+0

這可能是最有意義的,考慮到我真的不明白了原來的問題。 –

+0

@Thor我得到一個空數組,但新的數組不會出現。該怎麼辦? – Harry

+0

我不確定我瞭解您的問題?在你運行'a'和'b'之後,'a'或'b'是空的還是'c'空的? –

1

你可以使用jquery.each。

 jQuery.each(b, function() { 
      // 'this' will hold value . you can do your operation here 
      if(this!="in") 
     { 
      //heighlight 
     } 
     }); 

你可以找到更多的細節Here

1
$.each(b, function(c,d) { 
     if (d == "in") //do not highlight 
}); 
0

做這樣的事情;

a=["and","a","in","&"] 
b=["harry","in","connect"] 
var foo; 
$.each(b, function() { 
    if(Query.inArray(this, a)!=-1) 
    { 
    foo += "<strong>" + this + "</strong>"; 
    } 
    else{ 
    foo += this; 
    } 
}); 
0

如果我理解正確,您想突出顯示第二個數組中未包含的所有元素。如果是這樣的話,那麼這樣的事情應該工作:

for(var i=0,l=b.length;i<l;i++) 
    { 
     if(a.indexOf(b[i]) == -1) 
      { 
       // highlight b[i] 
      } 
     else 
      { 
       // do no highlight b[i] 
      } 
    }