2017-08-01 52 views
0

对不起,标题可能不好。如何获得具有相同值的2个相似结构的二维数组的索引

我得到了两个具有相似结构的2d阵列。

数组A:

arrayA[0]['account_name'] = 'a0'; 
arrayA[1]['account_name'] = 'a1'; 
arrayA[2]['account_name'] = 'a2'; 

和数组B:

arrayB[0]['account_name'] = 'a1'; 
arrayB[1]['account_name'] = 'b0'; 
arrayB[2]['account_name'] = 'c0'; 
arrayB[3]['account_name'] = 'a0'; 
arrayB[4]['account_name'] = 'd3'; 
arrayB[5]['account_name'] = 'e8'; 
arrayB[6]['account_name'] = 'a3'; 
arrayB[7]['account_name'] = 'b4'; 
arrayB[8]['account_name'] = 'b1'; 

现在我知道arrayA [0] [ 'ACCOUNT_NAME']等于 “A0”,我怎么能高效地搜索检查如果它也存在于数组B中/知道它在数组B中的位置?和我想在阵列A

+2

环路对于所有的值首先是这些对象数组,其次 - 提供正常的,可读代码。 –

+2

请显示您的尝试。 Stackoverflow不是免费的代码写入服务。这里的目标是帮助你修复你的代码** – charlietfl

回答

0

const a = [ 
 
\t { name: 'a0' }, 
 
    \t { name: 'a1' }, 
 
    \t { name: 'b2' } 
 
]; 
 
const b = [ 
 
\t { name: 'a0' }, 
 
    \t { name: 'a1' }, 
 
    \t { name: 'a2' }, 
 
    \t { name: 'b0' }, 
 
    \t { name: 'b1' }, 
 
    \t { name: 'b2' } 
 
]; 
 

 
a.forEach((aa, i) => { 
 
    let found; 
 
    b.forEach((bb, j) => { 
 
     if(aa.name === bb.name) { 
 
\t  found = { 
 
      index: j, 
 
      value: aa.name 
 
     }; 
 
    \t return true; 
 
     } 
 
    }); 
 
    console.log(found); 
 
});

+0

奇怪的使用'filter()'只是为了迭代数组而不做任何事情返回 – charlietfl

+0

@charlietfl谢谢指出。现在更新了答案。 – Venugopal

相关问题