在jquery中比较两个数组

使用此代码……

var a = ['volvo','random data']; var b = ['random data']; var unique = $.grep(a, function(element) { return $.inArray(element, b) == -1; }); var result = unique ; alert(result); 

…我能够找到数组“a”中哪个元素不在数组“b”中。

现在我需要找到:

  • 如果数组“a”的元素在数组“b”中
  • Array“b”中的索引是什么

例如,“随机数据”在两个数组中,所以我需要在Array b中返回它的位置,这是零索引。

关于您的评论,这是一个解决方案:

jQuery:

 $.each( a, function( key, value ) { var index = $.inArray( value, b ); if( index != -1 ) { console.log( index ); } }); 

没有 jQuery:

 a.forEach( function( value ) { if( b.indexOf( value ) != -1 ) { console.log( b.indexOf( value ) ); } }); 

您可以迭代a并使用Array.prototype.indexOf来获取b中元素的索引,如果indexOf返回-1 b则不包含a的元素。

 var a = [...], b = [...] a.forEach(function(el) { if(b.indexOf(el) > 0) console.log(b.indexOf(el)); else console.log("b does not contain " + el); }); 

这应该可行:

  var positions = []; for(var i=0;i 

所以你的最终数组将是这样的:

  var positions = [[0,2],[1],[3]...] //implies a[0] == b[0],b[2], a[1] == b[1] and so on. 

希望能帮助到你

你可以试试这个:

 var a = ['volvo','random data']; var b = ['random data']; $.each(a,function(i,val){ var result=$.inArray(val,b); if(result!=-1) alert(result); })