3

このコードを使用して...

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」にある場合
  • 配列「b」のインデックスは何ですか

たとえば、「ランダムデータ」は両方の配列にあるため、インデックスがゼロの配列 b でその位置を返す必要があります。

4

5 に答える 5

6

あなたのコメントに関して、ここに解決策があります:

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 ) );
    }
});
于 2013-07-25T11:51:41.603 に答える
2

両方の配列を文字列に変換して比較する

if (JSON.stringify(a) == JSON.stringify(b))
{
    // your code here
}
于 2019-03-26T12:43:59.817 に答える
1

これを試すことができます:

var a = ['volvo','random data'];
var b = ['random data'];
$.each(a,function(i,val){
var result=$.inArray(val,b);
if(result!=-1)
alert(result); 
})
于 2013-07-25T11:57:55.243 に答える
1

戻り値b に a の要素が含まれていないArray.prototype.indexOf場合は、a を反復処理して b の要素のインデックスを取得するために使用できます。indexOf-1

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);
});
于 2013-07-25T11:53:28.283 に答える
1

これはおそらくうまくいくはずです:

  var positions = [];
  for(var i=0;i<a.length;i++){
  var result = [];
       for(var j=0;j<b.length;j++){
          if(a[i] == b[j])
            result.push(i); 
  /*result array will have all the positions where a[i] is
    found in array b */
       }
  positions.push(result);
 /*For every i I update the required array into the final positions
   as I need this check for every element */ 
 }

したがって、最終的な配列は次のようになります。

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

それが役に立てば幸い

于 2013-07-25T11:54:49.043 に答える