2017-06-08 81 views
0

對於任何幫助我都會很感激。我很新的JavaScript和不能找出如何解決這個問題,我有。基本上我有2個數組。一個包含一個具有id值和相應組值的對象。第二個數組只包含id。我想比較兩個數組的ID,如果它們匹配,我想提取相應的組值。將數組值與對象進行比較

E.g.

a = [1,2,3,4,5];

b = [{1:group1},{2:group2},{3:group3}];

如果ID在B A比賽ID,然後打印出ID的組值

var a = []; 
var b = []; 
var c = {}; 


if (condition) { 
    c = {id:group} 
    b.push(c) 

} 

if (condition) { 
    a.push(id) 

} 

for (var i = 0; i < a.length; i++) { 
    //If id value in a exists in b, get id's corresponding group value from b 
} 
+1

苯並[a [i]]應該努力!如果它沒有定義,a [i]不在b中。 –

回答

1
function find() {  
    for (var i = 0; i < a.length; i++) { 
     for (var j = 0; j < b.length; j++) { 
     if (b[j].hasOwnProperty(a[i])) { 
      return b[j][a[i]]; 
     } 
     } 
    } 
} 
1

另一種解決方案:

<script> 
a = [ 
    1, // index 0 
    2, // index 1 
    3, // index 2 
    4, // index 3 
    5 // index 4 
]; 

b = [ 
    {1:'group1'}, // index [0][1] 
    {2:'group2'}, // index [1][2] 
    {3:'group3'} // index [2][3] 
]; 

// If id in a matches id in b then print out the id's group value 
var i = 1; 
for (var key in b) { 
    var bKeys = Object.keys(b[key]); 

    if(bKeys[0] == a[key]) { 
     console.log(b[key][i]); 
    } 

    i++; 
} 
</script> 
相關問題