以下是我使用knockout.js的视图模型
viewModel.myArray = ko.observableArray([
{ name: 'Luk', city: 'Warsaw' },
{ name: 'Mark', city: 'London' },
{ name: 'Tom', city: 'London' },
{ name: 'Peter', city: 'Warsaw' },
{ name: 'Paul', city: 'Warsaw' }
]);
使用<!-- ko foreach: myArray -->
我可以在视图中显示数组
但是如何通过使用淘汰赛
按照下面的城市分组数组来准备表格CITY NAME
[Warsaw] [Luk, Peter, Paul]
[London] [Mark, Paul]
感谢您的回答。
答案 0 :(得分:0)
您可以尝试这样的事情(未经测试):
viewModel.groupedCities = ko.computed({
read: function() {
var output = {};
var arr = viewModel.myArray();
for(var i = 0; i < arr.length; i++) {
var item = arr[i];
output[item.city] = output[item.city] || [];
output[item.city].push(item.name);
}
var keys = Object.keys(output);
var result = [];
for(var i = 0; i < keys.length; i++) {
result.push({ city: keys[i], names: output[keys[i]]});
}
return result;
});
然后只是一个类似的<!-- ko foreach: groupedCities -->
来显示它们。