基于this答案,我想将商店数据转换为对象并定义键值。这是我的相关代码:
var recordArray = {};
var paramArray = [];
store.each(function(record){
recordArray.comment = record.get("comment");
recordArray.datecreated = record.get("datecreated");
paramArray.push(recordArray);
});
console.log(Ext.encode(paramArray));
但打印出来的只是商店的最后一个数据,总和与数据总和匹配。假设我有两个来自列表视图的数据,如下所示:
[{comment: a, datecreated:1-2-1999}, {comment: b, datecreated:2-2-1999}]
打印出来:
[{comment: b, datecreated:2-2-1999}, {comment: b, datecreated:2-2-1999}]
我想要的是,当然,paramArray包含listView的每个对象,而不仅仅是同一个对象。有任何想法吗?帮助赞赏。
答案 0 :(得分:2)
试试这个,
var paramArray = [];
store.each(function(record){
var recordArray = {};
recordArray.comment = record.get("comment");
recordArray.datecreated = record.get("datecreated");
paramArray.push(recordArray);
});
在您的代码中,您将覆盖原始recordArray对象中的值,而不是每次都创建一个新对象,并且由于对象是通过JavaScript引用传递的,因此paramArray [0]中的原始recordArray引用也会被修改。