这是示例代码.我想打破(或继续)淘汰赛的ko.util.arrayForEach.
ko.utils.arrayForEach(items, function (item) {
if (...) break;
if (...) continue;
}
Run Code Online (Sandbox Code Playgroud)
bmo*_*ode 15
看起来你不能.这是arrayForEach的源代码(来自KO GitHub页面上的utils.js)
arrayForEach: function (array, action) {
for (var i = 0, j = array.length; i < j; i++)
action(array[i]);
},
Run Code Online (Sandbox Code Playgroud)
然而, Knockout规定ko.utils.arrayFirst将对数组中的每个项执行一个函数,并返回函数求值为true的第一个项.与filteredItems计算的observable类似,我们可以创建一个从搜索字段返回第一个匹配项:
//identify the first matching item by name
viewModel.firstMatch = ko.computed(function() {
var search = this.search().toLowerCase();
if (!search) {
return null;
} else {
return ko.utils.arrayFirst(this.filteredItems(), function(item) {
return ko.utils.stringStartsWith(item.name().toLowerCase(), search);
});
}
}, viewModel);
Run Code Online (Sandbox Code Playgroud)
更多细节可以在这里找到http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html