KnockoutJS ArrayFirst 没有按预期工作
KnockoutJS ArrayFirst doesn't work as expected
我已经尝试过这里的解决方案:
- 这个:
- 这个:ko.utils.arrayFirst always returns null when not handling else block with non-empty string
- 这个:
但对我来说没有任何用处。我正在检查一个项目是否已经存在于可观察数组中
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 是一个可观察的,而你没有评估它!阅读我对你原来问题的评论
我已经尝试过这里的解决方案:
- 这个:
- 这个:ko.utils.arrayFirst always returns null when not handling else block with non-empty string
- 这个:
但对我来说没有任何用处。我正在检查一个项目是否已经存在于可观察数组中
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 是一个可观察的,而你没有评估它!阅读我对你原来问题的评论