我已经在这里尝试了解决方案:
但是对我没有任何作用。我正在检查可观察数组中是否已存在项目
ko.utils.arrayForEach(self.Summary(), function (item) {
var match = ko.utils.arrayFirst(self.filteredSummary(), function (a) {
return a.Sku == item.Sku()
});
if (!match) {
// Do push
}
});
我做错什么了吗?即使已调试,它始终会返回null。
答案 0 :(得分:1)
检查语句,
return item.Sku() === a.Sku()
===:等于值和等于类型, ==:等于
https://www.w3schools.com/js/js_operators.asp
在您的情况下,两个摘要对象的值和类型必须相等。
答案 1 :(得分:0)
好,尝试这个
ko.utils.arrayForEach(self.Summary(), function (item) {
var match = ko.utils.arrayFirst(self.filteredSummary(), function (a) {
return a.Sku() == item.Sku();
});
if (!match) {
// Do push
}
});
如果这有效,那么问题是a.SKu是可观察的,而您没有对其进行评估!阅读我对您的原始问题的评论