diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js
index 318179b71581f885e6af2bb32ebb577209dc98e1..493b8c78f0cdfbf56f43c8775ab2fcd0edf5ff64 100644
--- a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js
+++ b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js
@@ -269,14 +269,12 @@ define([
             _.each(grouped, this.updateRegion, this);
 
             _.each(this.regions, function (items) {
-                var shouldBeEmpty = items.every(function (item) {
-                    return !~_elems.indexOf(item);
-                });
+                var hasObsoleteComponents = items().length && !_.intersection(_elems, items()).length;
 
-                if (shouldBeEmpty && items().length) {
+                if (hasObsoleteComponents) {
                     items.removeAll();
                 }
-            }, this);
+            });
 
             this.elems(_elems);