我使用handsontable显示应用程序的数据。我想将数组用作列,我似乎无法用文档来弄清楚。我想最好的方法是使用我的阵列数组,但我在拼凑它时遇到了麻烦。
到目前为止,这是代码:
var data = [
["Sale Month", "Usage", "Address", "Tax Assessment", "Loan Amount", "Initial Equity", "Lien Start Date", "Lien Term", "Loan Type", "Square Feet", "Year Build", "Acres"
, "Beds", "Baths", "Lotsort"]
];
var container = document.getElementById('listview');
var hot = new Handsontable(container, {
data: data,
rowHeaders: true,
colHeaders: true
});
我为每个列标题都有一组数组。例如,saleMonth
数组看起来像['01/18, 03/16, 01/12']
,依此类推。我想将每个数组的索引用于相应列中的条目。
这是当前的输出:
如果我能更清楚,请告诉我。
谢谢!
修改:添加了JSFiddle
答案 0 :(得分:1)
我稍微更改了您的数据结构:将data
更改为标题列表(columns
)并将值数组移动到地图(values
)中,其中键是列的名称和值是原始数组
通过这种方式,您可以详细说明数据,以合适的格式创建rows
数组
var saleMonth = ['01/18', '03/20']
var usageArray = ['Residential', 'Commercial']
var values = {
'Sale Month': saleMonth,
'Usage': usageArray
}
var columns =
["Sale Month", "Usage", "Address", "Tax Assessment", "Loan Amount", "Initial Equity", "Lien Start Date", "Lien Term", "Loan Type", "Square Feet", "Year Build", "Acres" , "Beds", "Baths", "Lotsort"]
;
var rows=[];
var numOfRow
for ( numOfRow = 0; numOfRow < saleMonth.length; numOfRow++ ) {
rows.push(columns.map((e) => {
if (e in values) {return values[e][numOfRow]}
return e;
}));
}
var container = document.getElementById('listview');
var hot = new Handsontable(container, {
data: rows,
rowHeaders: true,
colHeaders: true
});
您还可以在Hansontable
配置对象colHeaders: columns
中设置以获取列标题而不是字母