我正在尝试使用YUI来显示表格。使用以下示例
YAHOO.example.Data = {
bookorders: [
{id:"po-0167", date:new Date(1980, 2, 24), quantity:1, amount:4, title:"A Book About Nothing"},
{id:"po-0783", date:new Date("January 3, 1983"), quantity:null, amount:12.12345, title:"The Meaning of Life"},
{id:"po-0297", date:new Date(1978, 11, 12), quantity:12, amount:1.25, title:"This Book Was Meant to Be Read Aloud"},
{id:"po-1482", date:new Date("March 11, 1985"), quantity:6, amount:3.5, title:"Read Me Twice"}
]
}
YAHOO.example.Basic = function() {
var myColumnDefs = [
{key:"id", sortable:true, resizeable:true},
{key:"date", formatter:YAHOO.widget.DataTable.formatDate, sortable:true, sortOptions:{defaultDir:YAHOO.widget.DataTable.CLASS_DESC},resizeable:true},
{key:"quantity", formatter:YAHOO.widget.DataTable.formatNumber, sortable:true, resizeable:true},
{key:"amount", formatter:YAHOO.widget.DataTable.formatCurrency, sortable:true, resizeable:true},
{key:"title", sortable:true, resizeable:true}
];
var myDataSource = new YAHOO.util.DataSource(YAHOO.example.Data.bookorders);
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
myDataSource.responseSchema = {
fields: ["id","date","quantity","amount","title"]
};
var myDataTable = new YAHOO.widget.DataTable("basic",
myColumnDefs, myDataSource, {caption:"DataTable Caption"});
return {
oDS: myDataSource,
oDT: myDataTable
};
}();
但是我没有使用预订者Data,而是使用esri.tasks.QueryTask从数据库中查询结果
所以我必须遍历数据,我必须填写bookorders json数组。
for (var i=0, il=results_books.features.length; i<il; i++) {
var featureAttributes = results_books.features[i].attributes;
var string = " id : \"" + results_books.features[i].attributes[0] + "\",";
var string = string + " date : \"" + results_books.features[i].attributes[1] + "\",";
var string = string + " quantity: \"" + results_books.features[i].attributes[2] + "\",";
var string = string + " amount: \"" + results_books.features[i].attributes[3] + "\",";
var string = string + " title: \"" + results_books.features[i].attributes[4] + "\"";
}
但是我如何将字符串推入JSON数组并且是正确读取属性的方法?
编辑:将逗号添加到字符串
答案 0 :(得分:1)
只使用对象文字而不是构建字符串:
for (var i=0, il=results_books.features.length; i<il; i++) {
var featureAttributes = results_books.features[i].attributes;
var book = {
"id" : featureAttributes[0],
"date" : featureAttributes[1],
"quantity" : featureAttributes[2],
"amount" : featureAttributes[3],
"title" : featureAttributes[4]
};
// push into array
}
无需使用中间字符串,立即创建完整的对象。