在 JavaScript 中检查字符串是否包含数组的任何元素

2024-01-03

如何检查字符串是否包含数组的任何元素?如果元素有一些字符串,我想过滤一些数组。请看下面的代码。

var arr = ['banana', 'monkey banana', 'apple', 'kiwi', 'orange'];

function checker(value) {
  var prohibited = ['banana', 'apple'];

  for (var i = 0; i < prohibited.length; i++) {
    if (value.indexOf(prohibited[i]) == -1) {
      return true;
    } else {
      return false;
    }
  }
}

arr = arr.filter(checker);
console.log(arr);

结果是[ 'apple', 'kiwi', 'orange' ]. The 'apple'应该被删除,但事实并非如此。

上面的代码只过滤了“香蕉”,没有过滤“苹果”。我有很多关键词需要过滤。有更容易的方法吗?


它可以这么简单:

const arr = ['banana', 'monkey banana', 'apple', 'kiwi', 'orange'];

const checker = value =>
  !['banana', 'apple'].some(element => value.includes(element));

console.log(arr.filter(checker));

ECMAScript 6 FTW!

The checker uses 箭头函数 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions.

The !意思是排除所有不满足条件的元素。

The some()方法测试数组中的某些元素是否通过所提供函数实现的测试。

from Array.prototype.some() docs on MDM https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

The includes()方法确定一个字符串是否可以在另一个字符串中找到,返回true or false作为适当的。

from String.prototype.includes() docs on MDM https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes


由于并非所有浏览器都支持某些最新的 ECMAScript 功能,因此您应该使用Babel https://babeljs.io/将您的代码编译为 ECMAScript 5。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JavaScript 中检查字符串是否包含数组的任何元素 的相关文章

  • 拖放区缩略图宽度图像大小

    如何更改上传图像的缩略图大小 我在我的javascript中尝试过thumbnailWidth 350 但是这不会增加缩略图大小 而缩略图只是看起来放大了 如何操作图像缩略图大小 HTML section section
  • 使用 requirejs 加载外部脚本而无需访问配置

    我正在尝试在我正在编写的插件中加载数据表 javascript 库 问题是 当我加载外部资源时 我会遇到冲突 因为当我调用 require 时 数据表与某些内容发生冲突 这是错
  • 有没有办法监控页面上运行的 JavaScript 函数?

    有没有办法查看页面上正在执行哪些功能 如果我在页面上加载外部脚本 是否可以动态更改函数的功能或阻止其运行 HTML5 http www w3 org TR html5 scripting 1 html establish script bl
  • Google Charts(AreaChart)如何检测缩放变化

    我正在画一个面积图 在覆盖层上有一些标记 我正在使用explorer选项 仅限水平 以便用户放大和缩小 问题是我找不到一种方法来通知缩放更改 以便有机会更新制造商位置 有一个图表范围变化事件 但它不是由 AreaChart 触发的 我尝试检
  • 通过 jquery/javascript 在警报或确认对话框中单击“确定”?

    我正在考虑在backbone js 和jquery 中编写一些UI 测试 它们可能不是最好的方法 但这是我正在考虑的事情 通过纯代码自动化测试而无需记录和回放 使用这种方法唯一让我摸不着头脑的是 在某些 用例流程 执行的 中 会出现确认 警
  • javascript 和 PHP 中的正则表达式有什么区别吗?

    这是在 javascript 中验证电子邮件地址的正则表达式 我不确定是否可以直接在 PHP 中使用它 a z d u00A0 uD7FF uF900 uFDCF uFDF0 uFFEF a z d u00A0 uD7FF uF900 uF
  • 多维数组内的移动

    我有一个用表格显示的数组 如何使用用户输入进行移动 目前 0 被分配给每个数组 但我计划为该数组分配其他值 我的问题是 如何使用用户输入在数组内向上 向下 向右 向左移动和对角移动 Array 0 gt Array 0 gt 0 1 gt
  • React/Redux bundle.js 太大

    我有一个小型的 React 项目 Webpack生成的bundle js大小为6 3Mb 如何将大小减小到 github webpack config js module exports devtool inline source map
  • 光滑的旋转木马不工作

    我一直在尝试简单地实现 Slick Carousel 的工作 我已按照 Git 页面上的说明进行操作 https github com kenwheeler slick https github com kenwheeler slick 这
  • 将 Google 电子表格解析为 Javascript 数组

    我有一个 Google 电子表格 https docs google com spreadsheets d e 2PACX 1vRc8Lx0N wf3f1xAAXkNFUqQjaWPFcde3YjK02gCBqGpUrULwHC6NC0sn
  • EJS在JS onload函数中访问express变量

    我知道你可以像这样获取 ejs 文件中变量的值 h1 h1 如果我要在同一个 ejs 页面的 onload javascript 函数中使用相同的标题变量 我将如何使用它 例如 这个函数产生一个控制台错误说 未捕获的语法错误 意外的标识符
  • AngularJS 输入字段未从控制器内的 setTimeout 更新

    我正在使用 AngularJS 支持的页面 并且我需要在只读输入文本字段内显示正在运行的时钟 与data ng model 为了模拟运行的时钟 我使用了 JavaScript 调度程序setTimeout每 1000 毫秒调用一个函数 该函
  • 更改时触发跨度文本/html

    jQuery 或 JavaScript 中是否有任何事件在以下情况下触发span标签 text html 已更改 Code span class user location span user location change functio
  • 无法在渲染器进程中使用 Node.js API

    无法在 Electron 中使用任何与 Electron 或节点相关的操作 未定义获取错误过程 我检查了他们指导添加节点支持的各个地方 但这已经完成了 所以卡在这里 我的主要应用程序代码是 const electron require el
  • 从相机视图中拖动锁定在一定距离/半径处的对象

    我在场景中心有一个相机 距离相机 z 400 处有 1 个球体 其父级位于中心 我想从视图中向上 向下 向左 向右拖动球体 但同时不改变它相对于中心的 z 位置 我最终使用了另一个球体并使其不可见 添加side THREE DoubleSi
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • HTML 和 JavaScript - 将滚动操作从一个元素传递到另一个元素

    假设我有两个 div div div div A scrollable list div 我想让它当光标停在里面时 control并且鼠标滚轮滚动 view将会滚动 无论如何要实现这一目标 好的 快速修复对我有用 即使固定 div 不可滚动
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • JavaScript 中最长的通用前缀

    我正在尝试解决 Leet Code 挑战14 最长公共前缀 https leetcode com problems longest common prefix 编写一个函数来查找字符串数组中最长的公共前缀字符串 如果没有公共前缀 则返回空字
  • 如何构建 if 语句并与各种值进行比较?

    我该怎么写这个if以更好的方式声明条件 if data in 8 downto 1 x 70 or data in 8 downto 1 x 69 or data in 8 downto 1 x 72 or data in 8 downto

随机推荐

  • 如何在非主键列上连接表?

    我在 ORM 类层次结构中的对象上的连接表方面遇到问题 其中由于遗留数据库结构 连接列不是基类的主键 这是表格设计的示例 CREATE TABLE SCH FOO OWNERID NUMBER 10 0 NOT NULL ENABLE FO
  • 如何在 swagger-ui 中更改控制器的名称?

    如果我有以下情况 MySimpleTestController ApiController 是否可以在生成的 API 文档中让控制器名称显示为 My Simple Test 而不是 MySimpleTest 我进行了搜索 但主要找到了使用
  • 修复 Eclipse 调试认证错误的现有方法不起作用

    我面临着这样的问题 error generating final archive debug certificate expired on 但现有的食谱来修复它并不起作用 我做了什么 在 C Windows User android 中 我
  • 在tableView中删除

    我只是在 h 文件中添加此方法 IBAction EditTable id sender IBAction DeleteButtonAction id sender 并在 m 文件中 IBAction DeleteButtonAction
  • 如何在较新的 Rails 上用 readonly 替换 find ?

    我的项目中有这个遗留代码 Model find id readonly gt false 显然 它按 id 搜索 并且仅搜索非只读的对象 但 readonly 不是模型的属性 这应该检查定义该实例是否为只读实例的实际 ActiveRecor
  • Powershell 无法正确呈现我的脚本帮助

    我有一个 Powershell 脚本 在它的开头有很大的帮助 可以用Get Help命令 https gist github com MarkKharitonov 91698caf8c695902eacde2b6c7825bf1 https
  • 如何将 FQL 与 php api 结合使用?和访问令牌

    呃 我似乎无法让 fql 工作 一件事 我认为文档很旧 因为我不认为 api 只喜欢数组 反正 user id facebook gt getUser works access token facebook gt getAccessToke
  • 如何可靠地检测文件类型? [复制]

    这个问题在这里已经有答案了 目标 给定文件 确定它是否属于给定类型 XML JSON 属性等 考虑 XML 的情况 在我们遇到这个问题之前 以下示例方法运行良好 try saxReader read f catch DocumentExce
  • 将 python 回调函数传递给 Fortran 子例程的开销是多少?

    我刚刚使用 F2PY 将 Fortran 90 子例程包装到 python 中 这里的微妙之处在于 Fortran 子例程也采用 python 回调函数作为其参数之一 SUBROUTINE f90foo pyfunc a real kind
  • 实体框架返回与数据库查询不同的数据

    我可以查看数据库中的某些数据 它会返回我期望的数据 例如 Call Date To From Phone Number 20 1 2010 00 00 23 59 08923233223 20 1 2010 00 00 23 59 0892
  • 通过电子邮件和密码使用 firebase 注册用户?

    我使用 Firebase 授权创建了注册活动 并尝试注册新用户 但是当我按下注册按钮时 我的代码出现异常 protected void onCreate Bundle savedInstanceState super onCreate sa
  • 在Java中,有没有办法指定一个参数实现两个接口

    我很想做这样的代码 使用 jGraphT interface DirectedGraph
  • IIS Express 不保留会话数据

    我有一个在 IIS Express 服务器下的 Visual Studio 2013 中运行的应用程序 问题是会话数据没有保留在页面之间 并且我发现之前的页面不为空的空对象 如果我编译该应用程序并将其部署在带有 IIS 的 Web 服务器上
  • Meteor js 和多人游戏

    我开始学习 Meteor 我意识到它可能是简单多人游戏的良好解决方案 因为它的反应性 客户端 minimongo 数据库 客户端之间的实时交换是否足够快以交换玩家坐标 或者这是一个糟糕的解决方案 我应该在没有中间数据库的情况下完成它 只需直
  • MySQL 存储函数的正确 if 子句语法是什么?

    我是 MySQL 的新手 所以如果其中一些内容相对初级 我深表歉意 我正在尝试编写一个存储函数来将数字四舍五入到一定数量的有效数字 我有一个理论上应该可以工作的函数 我咨询了另一个有用的 StackOverflow 来确定逻辑 SQL 中四
  • 什么情况下使用八进制?

    我经常看到二进制和十六进制使用 但从未见过八进制 然而 八进制在某些语言中使用时有其自己的约定 即 前导 0 表示八进制基数 什么时候使用八进制 当人们使用八进制或八进制更容易推理时 有哪些典型情况 或者这只是一个品味问题 当一个字中的位数
  • 多对多关系中的删除不对称?

    我有两个模型 产品和类别 以及一个用于多对多关系的连接表 类别 假设我有两个对象 产品和类别 它们是上述对象的实例 products Product new category Category new product categories
  • 校验和与“git svn clone”不匹配后如何恢复?

    作为我们迁移计划的一部分 我正在将 SVN 存储库克隆到 git 我一路上遇到了各种障碍 迫使我继续克隆git svn fetch命令 最近的失败我不知道如何解决 git svn fetch Checksum mismatch dc tru
  • UIScrollView不滚动

    我有一个 UIScrollView 根本不滚动 如果我启用弹跳 我可以滚动到足够远的距离以查看视图之外的内容 但当我释放时它会立即回到原点 我已打开寻呼 但如果将其关闭 则会出现相同的行为 我已关闭自动布局 在 IB 中 scrollVie
  • 在 JavaScript 中检查字符串是否包含数组的任何元素

    如何检查字符串是否包含数组的任何元素 如果元素有一些字符串 我想过滤一些数组 请看下面的代码 var arr banana monkey banana apple kiwi orange function checker value var