以下是我的json。
[
{
heading: "name1",
viewable: true,
items: [
{
name: "name2",
status: true
},
{
name: "name1-2",
status: false
}
]
},
{
heading: "name2",
viewable: false,
items: [
]
},
{
heading: "name3",
viewable: true,
items: [
{
name: "name3-1",
status: true
},
]
},
{
heading: "name4",
viewable: true,
items: [
]
}
]
我正在将此JSON转换为可观察数组,我想按嵌套数组项()中的名称过滤此数组。我尝试使用嵌套的ko.utils.arrayFilter,但它没有给我任何输出。它总是给我一个空数组。
通过嵌套数组元素过滤数组的最佳方法是什么?
抱歉我的英语不好。
答案 0 :(得分:1)
您需要在过滤器中调用一个测试。类似的东西:
function nameInList(name, list) {
var result = false;
ko.utils.arrayForEach(list, function(item) {
if (item.name === name) {
result = true;
}
});
return result;
}
然后你的过滤器看起来像
ko.utils.arrayFilter(myList, function (item) {
return nameInList('name2', item.items);
});