在逗号分隔的字符串中选择可观察数组的所有字段值

时间:2015-07-30 07:37:35

标签: jquery arrays knockout.js

我有一个像这样的observableArray:

self.DisplayMessageCollection = ko.observableArray();

我正在收集一个集合并将项目推送到DisplayMessageCollection,如下所示:

self.DisplayMessageCollection.push({                            
                        messageid: msgid,
                        loader: 'block',
                        uploadopacity: 'uploadopacity',
                        sentstatus: 'Wait',
                        Chattype: self.ToChatType()
                    });

我需要将所有messageid字段值作为该数组中逗号分隔的字符串。

我知道我可以循环所有项目并获得messageid值。但我想知道我们是否可以查询observableArray,即以某种方式执行单个查询以将所有字段值作为逗号分隔的字符串进行查询?

2 个答案:

答案 0 :(得分:2)

您可以使用底层数组中的内置map function,然后您可以使用join function获取逗号分隔的字符串:

self.DisplayMessageCollection().map(function(i) { return i.messageid }).join(",")

如果您需要多次使用此逻辑,则可以为可观察数组创建helper function

答案 1 :(得分:0)

您可以使用KO utils映射数组并加入值。像这样:

var messages = ko.utils.arrayMap(self.DisplayMessageCollection(), function(item) {
     return item.messageid;
}).join(',');

然而,这几乎与Nemesv的解决方案相同。