У меня есть данные в формате json, отформатированные следующим образом
{
"ITEMS": [
{
"option": "one",
"values": ["A","B","C","D"]
},
{
"option": "two",
"values": ["E","F","G"]]
}
]
}
и код сценария, подобный этому
function Item(data) {
this.option = ko.observable(data.option);
this.values = ko.observableArray(data.values);
}
var ProductIndexVM = (function() {
function ProductIndexVM() {
items = ko.observable();
filtered_items = ko.observableArray([]);
selectedItems = ko.computed(function() {
return ko.utils.arrayFilter(items(), function(item) {
// return something using compare
});
});
// after ajax success
var mappedItems = $.map(result.ITEMS, function(item) {
return new Item(item)
});
items(mappedItems);
}
return ProductIndexVM;
})();
После успешного сопоставления данных запроса ajax с элементаминаблюдаемым.
Проблема в том, что мне нужно сравнить Filter_items ObservableArray с функциями элементов ' Значения ObservableArray, чтобы элементы внутри Filter_items соответствовали любому изфункция элемента ' значения вернет это или нет.
Упрощение всего, что я хочу, чтобы отсортировать элементы только с теми, которые содержатся в Filter_items .
В качестве примера, если Filter_items имеет содержимое, аналогичное приведенному ниже
["A", "C", "E"]
, то результат будет
{
"ITEMS": [
{
"option": "one",
"values": ["A","C"]
},
{
"option": "two",
"values": ["E"]]
}
]
}
Как я могу сравнить это внутри selectedItems ?