У меня есть два наблюдаемых массива, которые могут иметь соответствующие элементы. Я бы хотел, чтобы два фильтра эти два массива и найти уникальные предметы. дублирующиеся элементы могут быть сопоставлены атрибуту ID.как взять разницу в двух наблюдаемых массивах?
Есть ли способ сделать это, не создавая вложенные циклы, я обеспокоен тем, какое влияние этот подход оказывает на производительность страницы.
В настоящее время я делаю это следующим образом, если вы знаете лучший способ, пожалуйста, не стесняйтесь делиться.
self.alerts = ko.computed(function() {
var duplicates = [];
var alerts = ko.mapping.fromJS(ko.toJS(Neptune.SonarAlerts.alerts()));
ko.utils.arrayForEach(self.selectedAlerts(), function(selected) {
var duplicate = ko.utils.arrayFirst(alerts(), function(item) {
return selected.ID() == item.ID();
});
if (duplicate != null) {
duplicates.push(duplicate);
}
});
alerts.removeAll(duplicates);
return alerts();
});
Intersect ? ..... но это все просто петли на каком-то уровне .... –