如何快速从不包含关键字列表中的关键字的列表中删除项目?

sojim2

在此电子表格中,包含工作表RemoveRecordsKeywordsList

我想通过应用程序脚本KeywordsList搜索ArticleLink来删除不在工作中的记录

我正在考虑将这一点作为起点(这行不通):

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var rsheet = ss.getSheetByName("RemoveRecords"); 
var ksheet = ss.getSheetByName("KeywordsList"); 
var records = rsheet.getDataRange().getValues();
var keywords = ksheet.getDataRange().getValues();

for( var i=records.length - 1; i>=0; i--){
    for( var j=0; j<keywords.length; j++){
        if(records[i] && (records[i][1].DoesntContain(keywords[j]))){
            records.splice(i, 1);
        }
    }
}

如何从另一个数组中删除不包含字符串的数组?

更新我认为这可能是方法,但看起来它正在寻找完全匹配:

var filtered = ['ac', 'ab', 'cd', 'g'].filter(
    function(e) {
      return this.indexOf(e) >= 0;
    },
    ['b','a']
);
console.log(filtered);

鲁本

关于使用filter的问题中包含的方法indexOf,来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

indexOf()searchElement使用严格相等(与===或 三等号运算符使用的方法相同)与 Array 的元素进行比较

相反,您可以使用RegEx.prototype.test例子:

此示例使用 Array.prototype.filter、Array.prototype.some 和 RegEx.prototype.test。请注意,它不会在循环中调用电子表格服务,因此它应该比在循环中调用电子表格服务的其他解决方案更快地返回过滤后的数组。

function example(){
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var rsheet = ss.getSheetByName("RemoveRecords"); 
  var ksheet = ss.getSheetByName("KeywordsList"); 
  var records = rsheet.getDataRange().getValues();
  var keywords = ksheet.getDataRange().getValues();
  var filtered = containsKeyword(records, keywords);
  Logger.log(filtered);

}

function containsKeyword(records, keywords){
  return records.filter(function(row){
    return keywords.some(function(keyword){
      return new RegExp(keyword[0].replace('.','\.')).test(row[1])
    });
  });
} 

注意:以上要求对关键字列表或正则表达式稍作改动,以防止包含部分匹配,即其中一个关键字al.com匹配https://www.providencejournal.com/opinion/20190810/my-turn-victor-davis-hanson-another-2004-for-democrats

要删除记录,而不是 Logger.log,您可以清除工作表并发送 .log 的结果containsKeyword这将比deleteRow(pos)从 Class Sheet调用更快


在 OP 共享的电子表格副本上运行上述示例所产生的日志。

[19-08-11 17:03:14:932 CDT] [[轮到我了:维克多·戴维斯·汉森:民主党的另一个 2004 年?,https ://www.providencejournal.com/opinion/20190810/my-turn-victor- davis-hanson-another-2004-for-democrats,2019 年 8 月 10 日星期六 23:22:21 GMT-05:00,2020 年民主党正在出现类似的情况。......许多民主党竞争者支持全民医保,对奴隶制的赔偿,......,MedicareForAll],[拜登,桑德斯都在正面交锋中击败特朗普,新的民意调查发现,https: //www.newsweek.com/biden-sanders-poll-trump- 2020-选举-1453658,2019 年 8 月 10 日星期六 23:00:00 GMT-05:00,诸如堕胎、LGBTQ 权利和移民待遇等问题已经将一些原本保守的天主教徒淘汰到民主党阵营。拜登和......,LgbtqRights],[旧金山去年与芬太尼相关的死亡人数激增了 150%,报告称,https: //www.foxnews.com/health/san-francisco-sees-dramatic-rise-in - 芬太尼相关死亡,2019 年 8 月 10 日星期六 23:00:00 GMT-05:00,2010 年有 6 人死亡归因于该药物,该药物在 2016 年造成 22 人死亡。...危机……,阿片类药物危机]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从包含关键字的列表中删除条目-nodeJS

来自分类Dev

Python:列表理解中的'as'关键字?

来自分类Dev

列表推导中的“ As”关键字

来自分类Dev

关键字列表中的grep

来自分类Dev

如何过滤字符串列表中的关键字?

来自分类Dev

在列表中查找部分关键字/关键词

来自分类Dev

如何从不同列表中选择包含两个关键字的字符串?

来自分类Dev

如何从列表中删除元素之间的关键字在python中的元素之间

来自分类Dev

如何查找频率表关键字列是否包含列表中的所有值

来自分类Dev

从列表中检查单元格以哪个关键字开头并返回匹配的关键字

来自分类Dev

在列表中搜索关键字并创建新列表

来自分类Dev

删除括号中的文本,除非文本包含关键字

来自分类Dev

计算数组列表中关键字的出现次数

来自分类Dev

Android Studio中的“ noinspection”关键字列表

来自分类Dev

“ super()”关键字在列表理解中无法正常工作

来自分类Dev

InstancedBufferGeometry中的关键字属性列表是什么?

来自分类Dev

从 Python 列表中过滤非英语关键字

来自分类Dev

在Python中,最简单的方法是将包含关键字对的列表添加到字典中?

来自分类Dev

如何在Mongodb中存储项目的关键字

来自分类Dev

如何从栏中删除多个关键字

来自分类Dev

如何使用关键字从Pandas的列中删除行

来自分类Dev

从包含关键字项和字典项嵌套列表的字典中创建Pandas DataFrame

来自分类Dev

返回列,其中包含字符串列中存在的关键字列表-Pandas

来自分类Dev

从包含关键字项和字典项嵌套列表的字典中创建Pandas DataFrame

来自分类Dev

Dart中的“ with”关键字

来自分类Dev

OCaml中的“ as”关键字

来自分类Dev

Java中的关键字“ of”

来自分类Dev

js中的this关键字

来自分类Dev

在D3.js div的项目符号点列表中显示关键字

Related 相关文章

  1. 1

    从包含关键字的列表中删除条目-nodeJS

  2. 2

    Python:列表理解中的'as'关键字?

  3. 3

    列表推导中的“ As”关键字

  4. 4

    关键字列表中的grep

  5. 5

    如何过滤字符串列表中的关键字?

  6. 6

    在列表中查找部分关键字/关键词

  7. 7

    如何从不同列表中选择包含两个关键字的字符串?

  8. 8

    如何从列表中删除元素之间的关键字在python中的元素之间

  9. 9

    如何查找频率表关键字列是否包含列表中的所有值

  10. 10

    从列表中检查单元格以哪个关键字开头并返回匹配的关键字

  11. 11

    在列表中搜索关键字并创建新列表

  12. 12

    删除括号中的文本,除非文本包含关键字

  13. 13

    计算数组列表中关键字的出现次数

  14. 14

    Android Studio中的“ noinspection”关键字列表

  15. 15

    “ super()”关键字在列表理解中无法正常工作

  16. 16

    InstancedBufferGeometry中的关键字属性列表是什么?

  17. 17

    从 Python 列表中过滤非英语关键字

  18. 18

    在Python中,最简单的方法是将包含关键字对的列表添加到字典中?

  19. 19

    如何在Mongodb中存储项目的关键字

  20. 20

    如何从栏中删除多个关键字

  21. 21

    如何使用关键字从Pandas的列中删除行

  22. 22

    从包含关键字项和字典项嵌套列表的字典中创建Pandas DataFrame

  23. 23

    返回列,其中包含字符串列中存在的关键字列表-Pandas

  24. 24

    从包含关键字项和字典项嵌套列表的字典中创建Pandas DataFrame

  25. 25

    Dart中的“ with”关键字

  26. 26

    OCaml中的“ as”关键字

  27. 27

    Java中的关键字“ of”

  28. 28

    js中的this关键字

  29. 29

    在D3.js div的项目符号点列表中显示关键字

热门标签

归档