从 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)
我正在使用以下表达式 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)