2016-09-28 3 views
0

Что я хочу сделать, это пересечь два объекта.Пересечение двух объектов в угловом 2

Я хочу сравнить объекты, и если они имеют одинаковые значения на одних и тех же клавишах, просто добавьте их в другой объект.

obj1 = { "Projects": [ "test" ], "Companies": [ "facebook", "google", "yahoo" ], "Locations": [ "LA", "NY" ], "Interests": [] }

obj2 = { "Projects": [ "test" ], "Companies": [ "netflix", "skype", "facebook" ], "Locations": [ "sttugart", "torino", "LA" ], "Интересы": []}

Результат будет:

obj3 = { "Projects": [ "test" ], "Companies": [ "facebook" ], "Locations": [ "LA" ], "Interests": [] }

Что я пытался что-то вроде этого:

intersect(obj1, obj2) 
    for(let key of obj1) 
     if(obj2[key] == obj1[key]) obj3[key] = obj2[key]; 

И да, я проверил SO для других решений, у меня не было результата.

EDIT

Моя попытка dind't вероятно работать, потому что мой объект is not an array type or a string type

ответ

1

Это действительно не проблема только для углового 2, но больше javascript сама по себе. Нет угловых функций не будет, вероятно, поможет вам здесь

Использование lodash или underscore.js может оказаться более продуктивным и полезным

Однако, если вы настаиваете, что вам нужно сделать это по-своему. Есть два случая

Во-первых, вы уже знаете, сколько объектов было бы сравнение

Два в том, что вы не знаете, сколько объектов было бы сравнение

Для случая одного было бы простой для цикла с & & случаи для логических сравнений

Для случая два я предлагаю вам сначала нажать все свои объекты, которые необходимо сравнить с массивом и прокрутить туда.

+0

как слияние объектов, а не удаление дубликатов? –

+0

вы также можете это сделать ... удалить экземпляры, в которых определенное значение не отображается, по крайней мере, в значениях x x - количество объектов, которые вы сравниваете таким образом, что вы можете гарантировать, что это конкретное значение существует во всех объектах (предполагая, что каждый объект содержит только одно значение этого значения) –

+0

https://lodash.com/docs/4.16.2#intersection Я полностью предлагаю использовать эти функции, поскольку они оказываются более эффективными –

Смежные вопросы