使用定义的密钥名称ExtJS将存储数据转换为对象

时间:2017-02-27 04:04:30

标签: javascript object extjs key store

基于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的每个对象,而不仅仅是同一个对象。有任何想法吗?帮助赞赏。

1 个答案:

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