将数组值与对象进行比较

时间:2017-06-08 13:39:14

标签: javascript arrays object for-loop if-statement

非常感谢任何帮助。我是javascript的新手,无法弄清楚如何解决我遇到的这个问题。基本上我有2个阵列。一个包含具有id值和相应组值的对象。第二个数组只包含id。我想比较两个数组的ID,如果它们匹配,我想提取相应的组值。

E.g。

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

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

如果a中的id匹配b中的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
}

2 个答案:

答案 0 :(得分: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 :(得分: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>