В предыдущих ответах все работают, чтобы найти уникальные общие элементы, но не будут учитывать повторяющиеся элементы в списках. Если вы хотите, чтобы общие элементы отображались с тем же номером, что и их общий список в списках, вы можете использовать следующий однострочный:
l2, common = l2[:], [ e for e in l1 if e in l2 and (l2.pop(l2.index(e)) or True)]
Часть or True
необходима только в том случае, если вы ожидаете, что какие-либо элементы будут оцениваться с помощью False
.
Вы можете создать промежуточный объект, чтобы иметь возможность толкать внутри текущего элемента. Сейчас вы не можете, потому что вы нажимаете $scope.tempObj.nested
, который не существует, существует только $scope.tempObj[index].nested
, потому что $scope.tempObj
является массивом.
angular.forEach($scope.data, function(data) {
const element = {
id: data.policyNo,
renewalNo: data.renewalNo,
endorsementNo: data.endorseNo,
product: data.productDesc,
insuredName: data.holderName,
periodOfInsurance: data.fromDate + " to " + data.toDate,
nested: []
};
angular.forEach(data.policyDocumentContentCollection, function(docs) {
element.nested.push({
docName: docs.docType
});
});
$scope.tempObj.push(element);
});