我使用以下表达式返回行中所有值的串联的md5哈希值。
md5(forEach(row.columnNames,cn,if(isNull(cells[cn]),"",cells[cn].value)).join("|"))
这是为了识别重复项创建一个简单的索引(我不希望在此阶段删除它们)。但是,我刚刚意识到因为其中一列包含数据集的唯一索引,所以我不能对每一列进行散列,因为包含此列显然会使每个散列都是唯一的! (杜)
有没有办法从forEach循环中排除指定的列?除了这个以外的一种forEach ......
谢谢
答案 0 :(得分:0)
假设您要排除的列是第一个,您可以像这样对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()
根据条件包含/排除列名称(此处:排除名称中包含大写字母“C”的列):
filter(row.columnNames, v, v.contains("C")==false)