KnockoutJS ArrayFirst 没有按预期工作

KnockoutJS ArrayFirst doesn't work as expected

我已经尝试过这里的解决方案:

但对我来说没有任何用处。我正在检查一个项目是否已经存在于可观察数组中

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
            }
        });

我是不是做错了什么?这总是 returns null,即使在调试时它建立了匹配。

我附上了值的片段:

检查声明,

return item.Sku() === a.Sku()

=== :相等的值和相等的类型, == :等于,

https://www.w3schools.com/js/js_operators.asp

在您的情况下,两个摘要对象的值和类型必须相等。

好的,试试这个

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 是一个可观察的,而你没有评估它!阅读我对你原来问题的评论