Фон
У меня есть два массива (Массив 1 и Массив 2). Оба они имеют тип идентификатора (столбец 2 массива 1 и столбец 0 массива 2). Я хочу объединить два массива по вертикали, только если в этом идентификаторе есть совпадение.
Начальные массивы:
array1 = [[AB2C, Red, 113] <--Match
[BE4F, Green,164]
[AE3G, Blue, 143]]; <--Match
array2 = [[143, FabricB2, W5] <--Match
[189, FabricC9, W4]
[113, FabricA3, W5]]; <--Match
Требуемый конечный массив
array3 = [[AB2C, Red, 113, FabricA3, W5]
[AE3G, Blue, 143, FabricB2, W5]];
Методология
It мне кажется, что наиболее эффективный способ сделать это было бы:
- Создать пустой массив.
- Pu sh Массив 1 данных в массив 3, если столбец ID делает совпадение с единицей в массиве 2.
- Pu sh Данные массива 2 в массив 3, где столбец идентификатора совпадает с массивом 3. Мы также должны добавлять только столбцы 1 и 2 массива 2, поэтому мы не Дублирование столбца идентификатора.
То, что я пробовал
В шаге 2 я пытался сделать Pu sh Array 1 to Array 3 с pu sh и карта комбинированная, как показано ниже, но она не работает должным образом. Мое намерение состояло в том, чтобы взять каждый ряд массива 1, пропустить его через каждый ряд массива 2, чтобы проверить совпадение; если есть совпадение, то pu sh для массива 3.
Для шага 3 я думал о том, чтобы взять каждый ряд столбца 2 массива 3, пропустить его через каждый ряд столбца 0 массива 2, и когда найдя совпадение, сопоставьте их с массивом 3. Я никогда не справлялся с уравнением для шага 2, чтобы добраться до этого.
Я ДЕЙСТВИТЕЛЬНО был бы признателен за вашу помощь!
array1 = [[AB2C, Red, 113]
[BE4F, Green,164]
[AE3G, Blue, 143]];
array2 = [[143, FabricB2, W5]
[189, FabricC9, W4]
[113, FabricA3, W5]];
array3 = [];
array3.push(array1.map( function(e) { return e[2] == array2.map ( function (f) { return f[0] } ) }));