从 forEach 中排除一列

Excluding one column from forEach

我正在使用以下表达式 return 一行中所有值串联的 md5 散列。

md5(forEach(row.columnNames,cn,if(isNull(cells[cn]),"",cells[cn].value)).join("|"))

这是为了创建一个简单的索引来识别重复项(我不希望在这个阶段删除它们)。但是,我刚刚意识到,因为其中一列包含数据集的唯一索引,所以我无法对每一列进行哈希处理,因为包含这一列显然会使每个哈希值都是唯一的! (呃)

有没有办法从 forEach 循环中排除指定的列?一种 forEach 除了这个...

谢谢

假设您要排除的列是第一列,您可以像这样子集 row.columnNames

md5(forEach(row.columnNames.slice(1),cn,if(isNull(cells[cn]),"",cells[cn].value)).join("|"))

如果您更喜欢按名称排除列(例如,"ID"),您应该使用 filter() :

md5(forEach(filter(row.columnNames, v, v!="ID"),cn,if(isNull(cells[cn]),"",cells[cn].value)).join("|"))

同样,也可以根据条件使用filter()到include/exclude列名(此处:排除名称中包含大写"C"的列):

filter(row.columnNames, v, v.contains("C")==false)