我有一个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();
});
答案 0 :(得分:2)
使用arrayMap
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;
});
答案 1 :(得分:1)
您可以将mapping plugin与包含映射一起使用,只复制您想要的字段:
var mapping = {
'include': ["ItemName""]
}
var viewModel = ko.mapping.fromJS(items, mapping);
答案 2 :(得分:0)
你写了几乎正确的代码。只需将arrayFilter
替换为arrayMap
:
ko.utils.arrayMap(items(), function(item) {
return item.ItemName();
});