knockout.js - 如何中断或继续 knockout 的arrayforeach?

标签 knockout.js

这是示例代码。我想打破(或继续)淘汰赛的ko.util.arrayForEach。

ko.utils.arrayForEach(items, function (item) {
    if (...) break;
    if (...) continue;
}

最佳答案

看来你做不到。这是arrayForEach的来源(来自KO GitHub页面上的utils.js

arrayForEach: function (array, action) {
    for (var i = 0, j = array.length; i < j; i++)
        action(array[i]);
},


但是,Knockout提供了ko.utils.arrayFirst,它将对数组中的每个项目执行一个函数,并返回该函数计算为true的第一个项目。与可计算的observedItems相似,我们可以创建一个从搜索字段返回第一个匹配项的对象:

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


可以在此处找到更多详细信息http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html

关于knockout.js - 如何中断或继续 knockout 的arrayforeach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11648936/

相关文章:

javascript - 需要 Android 或 Iphone 移动设备后退按钮单击事件在 javascript 或 jquery

knockout.js - knockout 映射验证

javascript - Knockout、Require、Sammy 和每个页面的 View 模型——如何让它工作?

knockout.js - knockout valueUpdate 不适用于 Pagedown?

javascript - 分析 KnockoutJS observableArray

javascript - simpleGrid 是否需要额外下载?

knockout.js - knockout 验证 - 如何显示错误消息

javascript - knockoutjs 中的滑动 Action 绑定(bind)

jquery - 如何在 knockout 中创建动态模板?

javascript - 使用 KnockoutJS 将 JSON 对象映射到 View 模型的一部分