gpt4 book ai didi

google-apps-script - 谷歌电子表格中的逻辑异常(exception)/差异范围

转载 作者:行者123 更新时间:2023-12-02 09:05:57 26 4
gpt4 key购买 nike

我想在 Google 电子表格中获取逻辑 (A - B)(A\B)

所以,有:

答:答

{1,2,3,4}

B:B

{2,3,5,6}

enter image description here

所以我的公式

=my_amazing_formula(A:A, B:B)

应该返回

{1,4}

(A 的元素不存在于 B 中)

问题

我怎样才能实现这个目标?

最佳答案

因为不存在 HashSet 这样的数据结构在 Google Apps 脚本中,这是一个很难有效解决的问题。您可以选择二次解决方案,对于第一个范围中的每个项目,它将迭代整个第二个项目,尝试找到“匹配”,以便丢弃它。这看起来有点像@Cooper 的解决方案。

作为替代方案,考虑到 Google Apps 脚本的对象会保留属性插入顺序,您可以使用以下代码,理论上应该会产生更好的性能结果(特别是对于较大的工作负载)。

function DIFFERENCE(range1, range2) {
var o = {};
for (var i=0; i<range1.length; i++) {
for (var j=0; j<range1[0].length; j++) {
if (!o[range1[i][j]])
o[range1[i][j]] = true;
}
}

for (var i=0; i<range2.length; i++) {
for (var j=0; j<range2[0].length; j++) {
if (o[range2[i][j]])
o[range2[i][j]] = false;
}
}

return Object.keys(o).filter(function f(key) { return o[key]; }).map(function(res) { return parseFloat(res) });
}

此函数假设您正在处理数字。如果您希望它也能处理字符串,则可以将最后一行代码替换为以下内容:return Object.keys(o).filter(function f(key) { return o[key]; }) ;

您还可以在此处查看几个示例:

enter image description here enter image description here

关于google-apps-script - 谷歌电子表格中的逻辑异常(exception)/差异范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58593542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com