0

我有一个 ko 对象,它有一些属性。我只需要 ItemName 属性的值。

是否可以过滤此对象并获取 ItemName 属性值并将其推送到数组中。

items":[{"ItemID":1,"ItemName":"Asia","ItemLevel":0,"ItemParentID":0},
        {"ItemID":2,"ItemName":"Europe","ItemLevel":1,"ItemParentID":0},
        {"ItemID":3,"ItemName":"Africa","ItemLevel":2,"ItemParentID":0}]

所以我们最终得到以下结果:

array[0] = "Asia"
array[1] = "Europe"
array[2] = "Africa"

ko.utils.arrayFilter(items(), function(item) {
            return item.ItemName();
        });
4

3 回答 3

2

使用数组映射

items":[{"ItemID":1,"ItemName":"Asia","ItemLevel":0,"ItemParentID":0},
        {"ItemID":2,"ItemName":"Europe","ItemLevel":1,"ItemParentID":0},
        {"ItemID":3,"ItemName":"Africa","ItemLevel":2,"ItemParentID":0}]

var array = ko.utils.arrayMap(items, function(item) {
    return item.ItemName;
});
于 2013-03-06T11:49:47.620 回答
1

您可以使用带有包含映射的映射插件来仅复制您想要的字段:

var mapping = {
    'include': ["ItemName""]
}
var viewModel = ko.mapping.fromJS(items, mapping);
于 2013-03-06T11:49:15.187 回答
0

你写了几乎正确的代码。只需替换arrayFilterarrayMap

ko.utils.arrayMap(items(), function(item) {
            return item.ItemName();
        });
于 2013-03-06T11:49:59.643 回答