Javascript 为数组中的每个项计算jQuery淘汰运行

Javascript 为数组中的每个项计算jQuery淘汰运行,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个ko.computed函数,用于确定ko.observearray()中的当前项是否有效 但是,不会为数组中的每个项执行计算函数 JavaScript: var viewModel = { items: ko.observableArray(["value 1", "value 2", "value 3"]), }; viewModel.isValid = ko.computed(function() { // doesn't gets executed for eac

我有一个
ko.computed
函数,用于确定
ko.observearray()
中的当前项是否有效

但是,不会为数组中的每个项执行计算函数

JavaScript:

var viewModel = {
    items: ko.observableArray(["value 1", "value 2", "value 3"]),
};
viewModel.isValid = ko.computed(function() {
    // doesn't gets executed for each item
    console.log(this);

    return true;
}, viewModel);
ko.applyBindings(viewModel);
Html:


计算的
ko.computed
不会自动遍历您的所有项目。你需要自己做这件事:

viewModel.isValid = ko.computed(function() {
    ko.utils.arrayForEach(this.items(), function(item) {
        console.log(item);
    });
    return true;
}, viewModel);
演示


ko.computed
仅为您提供了一种功能,即当其一个相关可观测值发生变化时,它会重新计算其值

viewModel.isValid = ko.computed(function() {
    ko.utils.arrayForEach(this.items(), function(item) {
        console.log(item);
    });
    return true;
}, viewModel);