在 observableArray Knockout JS 中切换值

Toggle values in observableArray Knockout JS?

本文关键字:JS observableArray Knockout      更新时间:2023-09-26

基本上我有一个列表,列表中的每个项目都有一个唯一的值。 如果单击列表项,我希望在可观察数组中添加或删除该值。 因此,如果数组中存在该值,我想将其删除,反之亦然。

数组的结构很简单:

var items = ko.observableArray([
    "value1",
    "value2"
]);

该列表将包含带有 value1value2 的输入。 如果单击带有 value2 的列表,我想将其从数组中删除,如果没有,我需要将其push到数组中。

所以基本上我需要在数组中切换一个项目。

除可能吗.js? 谢谢!

当然。 Knockout的observableArray内置了一个indexOf方法。 使用它,以及pushremove来做你所要求的事情。 这样的事情应该有效:

function toggle(value){
    if (items.indexOf(value) < 0){
        //it's not in the array - push it
        items.push(value);
    } else {
        //it's there - remove it
        items.remove(value);
    }
}