将存储数据转换为具有已定义键名的对象 ExtJS

Convert Store Data to Object with Defined Key Name ExtJS

根据 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));

但是打印出来的只是store的最后一条数据,sum和data sum相符。假设我有 2 个来自列表视图的数据,如下所示:

[{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的每一个对象,而不是一个一个。有任何想法吗?帮助表示赞赏。

试试这个,

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 引用也被修改。