for*_*atc 7 javascript knockout.js
这工作正常:
self.getById = function(id) {
return ko.utils.arrayFirst(self.PostArray(), function(item) {
if (item.postId === id) {
return item;
}
else {
return 'not found';
}
});
};
console.log(self.PostArray().length);
console.log(self.getById(170));
Run Code Online (Sandbox Code Playgroud)
但是如果我把return ''或者return null在其他块中我总是得到null,那为什么呢?
And*_*ker 19
你没有arrayFirst正确使用.arrayFirst期望一个返回true或false评估每个项目的函数.返回函数返回的第一个项目true.这是它应该看起来的样子:
self.getById = function(id) {
return ko.utils.arrayFirst(self.PostArray(), function(item) {
return item.postId === id;
}) || 'not found';
};
Run Code Online (Sandbox Code Playgroud)
基本上返回'not found'if itemfalse(null在这种情况下最有可能).
有关KnockoutJS中各种实用程序功能的更多信息,请参阅此文章.