我从下面的数组中获取价值:
self.users = ko.computed(function(){
var list = ko.utils.arrayMap(self.tasks(), function(item){
return item.members + item.skype
});
var val = ko.utils.arrayGetDistinctValues(list);
alert(val);
return val;});
它显示的值如下:
user1skype_user1, user2skype_user2
但是我的问题是我需要在用户的foreach循环中的html中显示这个值。我的HTML代码如下:
<tbody data-bind="foreach: users">
<tr>
<td>
<b><span data-bind="text: //membername" /></b>
</td>
<td>
<span data-bind="text : //skypeid"></span>
</td>
</tr>
//another fareach loop</tbody>
我通过另一个appraoch创建了jsfiddle。但它根据tasknos重复。 jsfiddle in another approach
答案 0 :(得分:0)
我需要获得单一用户,无论任务是什么。 我添加了一个javascript函数来获取单个用户集并将其放在self.users中。 我已经更新了我的jsfiddle http://jsfiddle.net/TQXja/9/
self.users = ko.computed(function(){
var distinctUsers = "";
var distinctList = new Array();;
var list = ko.utils.arrayMap(self.tasks(), function(item){
if(distinctUsers.indexOf("|"+ item.members) == -1)
{
distinctUsers += "|"+ item.members;
return item;
}
});
//clean empty objects
for(i = 0; i < list.length; i++)
{
if(list[i] != null)
{
distinctList.push(list[i]);
}
}
return ko.utils.arrayGetDistinctValues(distinctList);});
现在正在努力。