使用数组作为具有handsontable的列

时间:2018-05-07 15:49:14

标签: javascript arrays handsontable

我使用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'],依此类推。我想将每个数组的索引用于相应列中的条目。

这是当前的输出:

Screenshot

如果我能更清楚,请告诉我。

谢谢!

修改:添加了JSFiddle

1 个答案:

答案 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中设置以获取列标题而不是字母