需要从二维数组返回一组动态列

问题描述 投票:0回答:1

我需要从 Google 表格中提取的数组中返回几列。目前我的代码是

let out = data.map(function (row, index) { 
    return [row[1], [row[0], [row[36], [row[6], [row[45], [row[46], [row[47], [row[7]]});

这段代码运行良好。但需求发生了变化,报告每周都会有不同的栏目。它将始终具有我需要的列,但这些列的位置会发生变化。我可以通过

获取列号
const colHeaders = ["Full Name","EID","Email - Work","Management Level"];
...
let sheetHeaders = sheet.getRange(1,1,1,sheet.getLastColumn()).getValues().flat();
let out = [];
for (let i in colHeaders){
 out.push(sheetHeaders.indexOf(colHeaders[i]));
}

但我不知道如何使用标题位置列表来返回完整的列。

javascript google-apps-script google-sheets multidimensional-array
1个回答
0
投票

您可以将列号数组映射到这些列中的值。

let colnums = colHeaders.map(h => sheetHeaders.indexOf(h));
//...
let out = data.map((row, index) => colnums.map(col => row[col]))
© www.soinside.com 2019 - 2024. All rights reserved.