Jquery 选择逗号分隔字符串中可观察数组的所有字段值
我的耳环是这样的:Jquery 选择逗号分隔字符串中可观察数组的所有字段值,jquery,arrays,knockout.js,Jquery,Arrays,Knockout.js,我的耳环是这样的: self.DisplayMessageCollection = ko.observableArray(); 我正在获取一个集合并将项目推送到DisplayMessageCollection中,如下所示: self.DisplayMessageCollection.push({ messageid: msgid, loader
self.DisplayMessageCollection = ko.observableArray();
我正在获取一个集合并将项目推送到DisplayMessageCollection
中,如下所示:
self.DisplayMessageCollection.push({
messageid: msgid,
loader: 'block',
uploadopacity: 'uploadopacity',
sentstatus: 'Wait',
Chattype: self.ToChatType()
});
我需要从该数组中以逗号分隔的字符串形式获取所有messageid
字段值
我知道我可以循环所有项目并获得messageid
值。但是我想知道我们是否可以查询ObservalArray
,也就是说,以某种方式执行单个查询以获取所有字段值作为逗号分隔的字符串?您可以使用基础数组上的内置数组,然后使用来获取逗号分隔的字符串:
self.DisplayMessageCollection().map(function(i) { return i.messageid }).join(",")
如果您多次需要此逻辑,您可以为可观察数组创建一个数组。您可以使用KO-utils映射数组并加入值。像这样:
var messages = ko.utils.arrayMap(self.DisplayMessageCollection(), function(item) {
return item.messageid;
}).join(',');
但是,这实际上与Nemesv的解决方案相同。您可以使用
map
,然后在底层数组self.DisplayMessageCollection().map(函数(i){return i.messageid})上使用join
@萨提亚,这应该行得通。cheers@nemesv你应该把这句话作为我的回答。