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

Javascript 将存储数据转换为具有定义的键名ExtJS的对象,javascript,object,extjs,key,store,Javascript,Object,Extjs,Key,Store,根据答案,我想将存储数据转换为对象,并定义键值。以下是我的相关代码: var recordArray = {}; var paramArray = []; store.each(function(record){ recordArray.comment = record.get("comment"); recordArray.datecreated = record.get("datecreated"); paramArray.push(recordArray); })

根据答案,我想将存储数据转换为对象,并定义键值。以下是我的相关代码:

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的每个对象,而不仅仅是同一个对象。有什么想法吗?感谢您的帮助。

试试这个

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

试试这个

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